SOA+思想技术与系统集成+应用详解.docx
《SOA+思想技术与系统集成+应用详解.docx》由会员分享,可在线阅读,更多相关《SOA+思想技术与系统集成+应用详解.docx(89页珍藏版)》请在冰豆网上搜索。
SOA+思想技术与系统集成+应用详解
本书光盘源程序使用说明
《SOA思想、技术与系统集成应用详解》
梁爱虎
光盘内容概述
一、本书的例子
本书的主要例子是采用的具有中国特色的房屋贷款的例子,即根据客户房屋数量的不同,银行将会采用不同的首付比率和贷款利率。
例子的详细说明参见本书第6章“6.2.1房屋贷款案例介绍”。
同一个例子将会贯穿本书的各种SOA实现技术,使读者能够专注于具体技术的学习。
二、光盘例子概述
配置光盘主要给出源程序,以及如何运行源程序,对源程序的理解和掌握,还是需要结合书本。
注意:
运行第7章的ServiceMix的例子时,需要联网。
目录
本书光盘源程序使用说明1
光盘内容概述2
一、本书的例子2
二、光盘例子概述2
第2章WebService编程详解例子5
2.1下载和安装各种工具和插件5
2.2建立workspace8
2.3配置环境变量JDK_TOOLS、TOMCAT_HOME9
2.4在Eclispe中加入Axis的开发环境11
2.5创建两个LombozJ2EEProject13
2.6导入光盘提供的axisProject和xfireProject15
2.7调出“LombozJ2EEView”发布和运行服务端程序20
2.8运行WebService客户端程序22
2.9安装ant,运行axis2例子23
一、安装ant23
二、安装axis224
三、安装和运行axis2的例子25
第3章JBI架构思想详解例子28
第4章SCA架构思想详解例子28
第5章SDO编程思想详解例子28
第6章BPEL编程思想详解例子28
第7章基于JBI的ServiceMix服务总线例子29
7.1安装ServiceMix3.129
7.2配置ServiceMix3.129
7.3安装本章例子30
7.4运行本章例子30
一、ws-create30
二、soap-binding31
三、http-binding32
四、external_rout32
五、house-loan33
六、house-loan-bpel34
七、chap_3_jbi_sample35
第8章CXF(Celtix/Xfire)服务总线例子36
8.1安装CXF36
8.2配置CXF36
8.2安装本章例子36
8.3运行本章例子37
一、hello_world37
二、house_loan38
三、cxf_servicemix_integration38
第9章ApacheSynapse服务总线例子41
9.1安装ApacheSynapse41
9.2安装本章例子42
9.3运行本章例子42
一、synapse_sample_000.xml42
二、synapse_sample_001.xml43
三、synapse_sample_002.xml44
四、synapse_sample_003.xml44
五、synapse_sample_004.xml45
第10章Mule服务总线例子46
10.1安装Mule46
10.2配置Mule47
10.3安装Mule例子47
10.4运行Mule例子48
一、hello48
二、houseloanbroker48
第11章ApacheTuscany的JavaSCA51
11.1安装ApacheTuscany的JavaSCA51
11.2安装例子51
11.3运行例子52
一、hello52
二、calculatorService52
三、loanbroker52
四、loanbroker-ws-service和loanbroker-ws-reference53
五、loanbroker-rmi-service和loanbroker-rmi-reference53
第12章ApacheTuscany的JavaSDO例子55
12.1安装ApacheTuscany的JavaSDO55
12.2配置SDO的开发环境55
12.3安装例子58
12.4运行例子65
一、第5章的例子65
二、第12章的例子66
三、运行例子67
第13章BeaAqulogic服务总线例子69
13.1安装和配置BeaAqulogic69
13.2安装本章的例子69
13.3运行本章的例子69
第14章基于IBMWebsphereIntegrationDeveloper(WID)的SCA开发详解例子71
14.1下载和安装WID、WebsphereProcessServer、WebsphereESBServe71
14.2源程序71
14.3光盘内容76
第15章基于IBMWID和WebshpereESBServer的ESB开发详解例子77
15.1源程序77
15.2光盘内容81
第16章基于IBMWID和WebshpereProcessServer的BPEL开发详解例子82
16.1源程序82
16.2光盘内容82
第2章WebService编程详解例子
所需要的软件都在光盘的“第2章(WebService)”下面。
2.1下载和安装各种工具和插件
下面的内容书中都有详细介绍,为保证光盘使用的完整性,此处重新予以介绍。
下面将介绍如何安装Eclispe3.1.2和Lomboz3.1.0插件,读者首先要到下面的相关网站找到和下载下面的安装软件并安装它们。
一、下载地址
●jdk1.5
目前JDK1.5实际项目中用的比较多,很多开源的SOA服务总线项目也是基于JDK1.5的版本。
SUN公司官方下载网址:
JDK1.5有许多版本,读者可以任选一个下载。
●eclipse-SDK-3.1.2-win32
本章例子采用了eclispe开发环境,eclipse官方网站下载网址:
http:
//www.eclipse.org
http:
//download.eclipse.org/eclipse/downloads/drops/R-3.1.2-200601181600/index.php
http:
//www.eclipse.org/downloads/download.php?
file=/eclipse/downloads/drops/R-3.1.2-200601181600/eclipse-SDK-3.1.2-win32.zip
●emf-sdo-runtime-I200412160800
emf-sdo-runtime-I200412160800是Lomboz插件所需要的运行环境,objectweb官方网站下载网址:
http:
//forge.objectweb.org/
http:
//forge.objectweb.org/project/showfiles.php?
group_id=97
http:
//forge.objectweb.org/project/download.php?
group_id=97&file_id=3039
●org.objectweb.lomboz_3.1.0.N20050106
org.objectweb.lomboz_3.1.0.N20050106是Eclispe的Lomboz插件,objectweb官方网站下载网址:
http:
//forge.objectweb.org/
http:
//forge.objectweb.org/project/showfiles.php?
group_id=97
http:
//forge.objectweb.org/project/download.php?
group_id=97&file_id=3060
●TOMCAT5.5.12
请采用5.5.12版本,它支持Spring,本章所介绍的xfire包需要Spring的支持来运行。
直接到下面的URL下载apache-tomcat-5.5.12.zip即可。
http:
//archive.apache.org/dist/tomcat/tomcat-5/v5.5.12/bin/apache-tomcat-5.5.12.zip
二、安装
上面完成了软件的下载工作后,这里将进一步介绍如何安装。
1、安装jdk1.5
建议读者安装到到C:
\jdk1.5如图2-7所示,jdk1.5也有很多不同的版本,如jdk1.5.0_12,jdk1.5.0_13等,安装时只保留jdk1.5。
这样可以和本书的例子保持一致,因为Eclispe里面的Java编译环境以及JDK_TOOLS变量都和这个路径有关。
(读者也可以保留自己原有的jdk的名字,如jdk1.5.0_13,关键是要将JDK_TOOLS配置正确,在本文档的2.3将予以介绍)。
设置环境变量JAVA_HOME=C:
\jdk1.5
2、安装eclipse-SDK-3.1.2-win32
直接解压缩 eclipse-SDK-3.1.2-win32到C:
\eclipse如图2-8所示。
3、安装emf-sdo-runtime-I200412160800
直接将emf-sdo-runtime-I200412160800解压到上面刚刚安装的Eclipse目录中去,注意不要将目录解压错了。
4、安装org.objectweb.lomboz_3.1.0.N20050106
直接将org.objectweb.lomboz_3.1.0.N20050106解压到Eclipse对应的plugins,注意不要将目录解压错了。
5、安装作者所提供的org.eclipse.jdt.ui_3.1.2.jar
因为目前的eclipse-SDK-3.1.2-win32的jar和Lomboz插件在一起时不能编辑JSP文件,因而需要将作者在光盘中所提供的新的org.eclipse.jdt.ui_3.1.2.jar拷到C:
\eclipse\plugins下面。
(org.eclipse.jdt.ui_3.1.2.jar在配套光盘的“第2章(WebService)\安装eclipse_lomboz”的目录下面)
6、安装tomcat5512x.server
将作者在光盘中提供的tomcat5512x.server拷到
C:
\eclipse\plugins\com.objectlearn.jdt.j2ee_3.0.1\servers
(需要将Tomcat5.5.12安装于C:
/apache-tomcat-5.5.12目录,否则需要修改)
7、安装lib
将作者在光盘中所提供的lib目录拷到C:
8、安装axis
将作者光盘中所提供的axis-1_1目录和axis-1_4目录拷到C:
9、安装xfire
将作者光盘中所提供的xfire拷到C:
10、安装TOMCAT5.5.12
将apache-tomcat-5.5.12.zip在C:
盘下解压缩即可。
同时需要在系统的环境变量中设置
TOMCAT_HOME为Tomcat的安装根目录,如下图所示的C:
\apache-tomcat-5.5.12
2.2建立workspace
首先创建一个workspace的目录,比如“ws_workspace”,然后运行Eclipse目录下面的“eclipse”命令,选择相应的workspace目录即可。
如下图所示。
2.3配置环境变量JDK_TOOLS、TOMCAT_HOME
选择【windows】→【preferences】命令,出现“Preferences”对话框。
在“Preferences”对话框的左边列表中选择【Java】→【BuildPath】→【ClasspathVariables】命令,在右边弹出“ClasspathVariables”对话框,单击【New】按钮,在弹出框的“Name”字段中输入变量的名称“JDK_TOOLS”,在“Path”字段中输入变量要引用的路径如“C:
\jdk1.5\lib\tools.jar”,如图2-24所示。
这样就完成了新变量JDK_TOOLS的设置。
接下来根据书中“2.4.3调出Lomboz菜单”的内容在Eclipse上面调出Lomboz菜单。
同理,可以配置TOMCAT_HOME,为tomcat的安装根目录C:
\apache-tomcat-5.5.12,如下图所示。
2.4在Eclispe中加入Axis的开发环境
基于Axis开源jar包来开发WebService已经成为实际项目中工作开发WebServcie的主流。
主要是基于Axis的开发出来的WebService可以独立于各种应用服务器的限制。
就象用Eclipse和Lomboz开发出来的EJB可以发布于各种应用服务器一样,基于Axis开发出来的WebService可以直接运行于各种服务器,只要该服务器包含Axis的jar包即可。
Axis本质上是一个实现JAX-RPC的一个Servlet。
只要该Web容器支持Servlet,就可用Axis来进行WebService的布置工作。
一、将axis的库加入Eclipse的编辑库
因为整个基于axis的开发工作都是基于axis的jar同时在Eclipse上面来进行的,所以首先需要将axis的库加入Eclipse的编辑库,使得整个项目的开发工作不会发生编辑错误。
整个过程就是在Eclipse上先创建一个axis的编辑库,然后将axis的jar包加入该axis库即可。
在Eclipse界面选择【Window】→【Preferences】命令,在弹出对话框的左边列表中选择【Java】→【BuildPath】→【UserLibraries】命令,弹出“UserLibraries”对话框,单击对话框的【New】按钮,在弹出的对话框输入对应于“Userlibraraname”字段的库名称如“axislib”,如下图所示。
二、在axis库中加入相应的lib
在上面所创建的axis库中加入相应的axis的jar包文件如下图所示。
将“C:
\axis-1_4\lib”目录下面的所有jar文件加入到“axislib”库。
2.5创建两个LombozJ2EEProject
首先根据书中“2.4.3调出Lomboz菜单”的内容在Eclipse上面调出Lomboz菜单。
接下来根据书中“2.4.4创建LombozJ2EEProject”的内容在Eclipse上面创建两个项目:
⏹axisProject
⏹xfireProject
具体过程如下:
在“PackageExplorer”对话框中右击鼠标,弹出Lomboz菜单,如下图所示。
在弹出的快捷菜单中选择【New】→【LombozJ2EEProject】命令,出现如下图所示的对话框,在“ProjectName”文本框中输入所要创建的J2EEProject的名字,如“xfireProject”。
单击【Finish】按钮完成LombozJ2EEProject的创建,下图显示了所创建的两个项目。
2.6导入光盘提供的axisProject和xfireProject
下面将介绍如何导入光盘提供的axisProject和xfireProject。
首先介绍如何导入axisProject。
首先选中“axisProject”项目,右击鼠标,在弹出的快捷菜单中选中【Import】选项,如下图所示。
在弹出的“Import”对话框中选中“FileSystem”选项,单击【Next】按钮,如下图所示。
在弹出的对话框中单击【Browser】按钮,选择光盘中对应的“axisProject”目录即可,如下图所示。
选中主界面左侧出现的“axisProject”的选择项,并单击主界面右下脚的【Finish】按钮如下图所示。
在弹出的对话框中选择【YestoAll】按钮即完成了“axisProject”项目的导入工作。
同理可完成选择光盘下的“xfireProject”目录完成“xfireProject”项目的导入工作。
2.7调出“LombozJ2EEView”发布和运行服务端程序
选中【Window】→【ShowView】→【LombozJ2EEView】选项,如下图所示。
进一步可以根据书中2.4.9的内容发布本章的WebService了,如下图所示。
进一步可以根据书中2.4.10的内容运行本章的WebService了,如下图所示。
这里再介绍另外一种直接运行Tomcat的方法。
首先还是通过上面的Eclipse来发布axis和xfire的两个war包到Tomcat的webapps目录,如下图所示:
然后直接点击运行“C:
\apache-tomcat-5.5.12\bin”目录下面的“startup.bat”即可,如下图所示,这样可以不必每次都要启动Eclipse来运行Tomcat。
2.8运行WebService客户端程序
运行【axisProject】→【src】→【client】目录下面的AxisWSTestor客户端程序来测试Axis的WebService,如下图所示。
同理运行【axisProject】→【src】→【client】目录下面的XfireWSTestor客户端程序来测试Xfire的WebService。
2.9安装ant,运行axis2例子
下面介绍如何运行第2章的axis2的例子。
一、安装ant
例子需要Ant脚本的编译支持,ant可到下面地址下载然后安装即可:
http:
//ant.apache.org/bindownload.cgi
下载apache-ant-1.7.0-bin.zip文件,然后直接解压缩即可,如下图所示。
最后需要将所安装的ant的bin目录设置到系统的path路径下面,如将C:
\apache-ant-1.7.0\bin
二、安装axis2
请参考本书2.5章节。
可以从axis2官方网站下载这个软件包(axis2-1.3-bin.zip),具体下载地址是:
http:
//ws.apache.org/axis2/
http:
//www.apache.org/dist/ws/axis2/1_3/axis2-1.3-bin.zip
然后将下载的axis2-1.3-bin.zip在C:
解压缩即完成安装。
解压后的硬盘文件目录如下图
可以展开来进一步了解这些目录,如下所示:
Axis2_home
|――bin
|――axis2server.bat、java2wsdl.bat、wsdl2java.bat、axis2.bat
|――conf
|――axis2.xml
|――lib
|――repository
|――modules
|――addressing.mar
|――services
|――*.aar(所有的应用程序都打成aar包发布在这个目录下面)
|――sample(axis2自带的sample)
|――webapp
|――axis2-web
|――WEB-INF
三、安装和运行axis2的例子
1.安装光盘例子
直接将光盘“第2章”目录下面的“soa_axis2_sample”拷贝到axis2的安装根目录即可,如下图所示。
Axis2_home
|――soa_axis2_sample
|――hello
|――build.xml(编译脚本)
|――src
|――META-INF
|――services.xml
|――rpcclient(客户端java源程序)
|――service(服务端java源程序)
2.发布例子
在windows命令窗口中,输入下面的命令
C:
\axis2-1.3\soa_axis2_sample\hello>ant
如下图所示
可以看到HelloService.aar文件将会出现在C:
\axis2-1.3\repository\services目录下,如下图。
3.运行axis2服务
运行时,需要在机器环境变量中需要设置AXIS2_HOME,如上面的情形可设置
Axis2_home=C:
\axis2-1.3,
然后在“C:
\axis2-1.3\bin”目录下运行axis2server.bat命令,如下图所示。
可以通过下面的URL验证WebService是否发布成功,如果有输出表示发布成功。
http:
//localhost:
8080/axis2/services/HelloService?
wsdl
可以通过下面的URL来直接调用WebService,响应结果将会直接显示在浏览器上,如下图所示。
http:
//localhost:
8080/axis2/services/HelloService/getHello?
param0=aihu
4.运行客户端程序
重新开启一个windows窗口。
在“C:
\axis2-1.3\soa_axis2_sample\hello”目录下运行“antrpc.client”命令,将会得到下面的反应:
Helloaihu!
ThisisAXIS2WebServiceResponse
第3章JBI架构思想详解例子
因为使用了ServiceMx服务总线,所以本章例子包含在本文档“第7章基于JBI的ServiceMix服务总线”的例子。
第4章SCA架构思想详解例子
因为使用了Tuscany的运行环境,所以本章例子包含在本文档“第11章ApacheTuscany的JavaSCA”的例子之中。
第5章SDO编程思想详解例子
因为使用了Tuscany的运行环境,所以本章例子包含在本文档“第12章ApacheTuscany的JavaSDO”的例子之中。
第6章BPEL编程思想详解例子
因为使用了ServiceMx服务总线,所以本章例子包含在本文档“第7章基于JBI的ServiceMix服务总线”的例子。
第7章基于JBI的ServiceMix服务总线例子
7.1安装ServiceMix3.1
ServiceMix需要JDK1.5的支持,JDK1.5已经在第2章作了介绍。
本章的ServiceMix例子需要Ant脚本的编译支持,第2章axis2的例子中已经介绍了。
ServiceMix的官方地址为:
http:
//incubator.apache.org/servicemix/home.html
本章采用ServiceMix3.1的版本,ServiceMix3.1的下载地址:
http:
//incubator.apache.org/servicemix/servicemix-31.html
本章的例子都是采用的apache-servicemix-3.1-incubating.zip,是目前相对来说一个比较稳定的版本,如果