1.方案简介
1.1. 问题介绍
当实施了“IBM WebSphere系列产品和BEA Tuxedo Server的集成方案”第 1 部分中的方案后,应用程序可以通过 WebSphere 提供的标准 J2EE 接口访问 Tuxedo 应用。接下来,怎样才能让Tuxedo应用程序访问基于J2EE的企业应用,实现J2EE服务和Tuxedo服务的双向调用呢?
1.2. 解决方案
产品XMLink Universal Gateway(XUG),提供了Tuxedo应用访问WebSphere服务的能力。使用了XUG,Tuxedo应用程序就可以像访问其它Tuxedo服务一样来访问其它企业应用程序提供的服务,这使得在保留原有Tuxedo应用程序的同时,增加了Tuxedo应用程序对其他类型企业应用程序提供的服务的访问能力。
1.3. XUG简介
图 1 1 XUG应用方案示意图图 1 1是解决方案的系统框架,下面将对系统中的要素逐一介绍。
1.3.1. Tuxedo客户端(Tuxedo Client)
在应用了XUG以后,Tuxedo客户端使用通常的tpcall方法调用服务。XUG不需要在Tuxedo客户端上安装。当你想调用新的企业服务以增强Tuxedo应用时,你只需要配置XUG Tuxedo server向Tuxedo客户端通告这些服务。
1.3.2. XUG
从图 1 1可以看到,XUG由四个部分组成:
- XUG Tuxedo Server:XUG Tuxedo Server是一个完整的Tuxedo Server,其主要作用是向Tuxedo应用通告用户配置的企业应用。
- Data Translation(数据转换):Date Translation主要负责Tuxedo缓冲结构FML和XUG XML之间的转换。
- Delivery Agent(分发代理):分发代理指XUG和企业信息系统之间交换消息的方式。Delivery Agent模块的功能是控制数据怎样传输及调用对应的企业服务监听器。如,当用户指定分发代理为"通过HTTP传输SOAP"时,Delivery Agent将调用SOAP监听器提供的相应企业服务
- XUG Adapter EJB。XUG Adapter EJB部署在WebSphere上,用在"通过IIOP传输RMI"时。当其得到调用请求时,通过SOAP调用企业服务
1.3.3. 企业信息系统
企业信息系统可以是一个J2EE应用服务器,如IBM WebSphere Application Server。企业信息系统中包含:部署的企业服务,用户选择协议的监听器(SOAP-RPC,RIM/IIOP)以及XUG Adapter EJB。XUG可以使用三种分发代理调用企业信息系统的服务:
- SOAP-RPC:使Tuxedo应用程序可以与处理SOAP协议的企业应用系统交互,甚至包括.NET服务。
- RMI/IIOP:适用于J2EE应用服务器配置用于处理RMI/IIOP请求时,需要在企业信息系统上安装XUG Adapter EJB, XUG Adapter EJB处理RMI/IIOP请求,将之提交到SOAP层。
- EJB:XUG直接与包含业务逻辑的EJB交互。不使用SOAP,XUG Adapter EJB。
1.4. 使用XUG的优点
使用XUG实现Tuxedo应用访问WebSphere服务,有以下优点:
- 不改变Tuxedo编程方法:Tuxedo客户端使用标准的Tuxedo服务调用函数tpcall调用XUG Tuxedo Server发布的企业应用,与调用普通的Tuxedo服务并无区别。
- 不改变WebSphere J2EE框架:XUG在调用WebSphere服务时,三种分发代理方式都符合J2EE规范,这样的设计,使J2EE设计人员在做J2EE设计时,完全不需要为Tuxedo客户端调用做额外的考虑,只需要按照规范的J2EE规范发布企业服务即可。
- 结构灵活,便于扩展:用户在首次完成XUG的安装和配置以后,如果需要添加新的J2EE服务调用,只需要修改两个XML配置文件即可完成,使得功能扩展变得十分简单。
- 整合风险小:用户在安装配置XUG的过程中,对原有的J2EE服务和Tuxedo服务都不构成影响,大大降低了用户整合的风险。
回页首
2.安装XUG
图 2 1 XUG的安装需要如图 2 1所示,使用XUG的系统中通常有BEA Tuxedo客户端 (BEA Tuxedo Client),BEA Tuxedo服务器 (BEA Tuxedo Server),企业信息系统(EIS)三种类型的计算机。不过,一台计算机也可以用做多种类型,这三种计算机对XUG的安装需要如下表:
计算机类型 XUG安装需要 BEA Tuxedo Client 不需要安装 BEA Tuxedo Server Gateway Tuxedo Server
Gateway Core Files EIS 使用RMI/IIOP方式时需要安装:
Gateway Core Files
Gateway Adapter EJB
使用SOAP-RPC、RMI/IIOP方式:不需要安装
在确定了应用系统结构和要使用的分发代理以后,就可以开始安装XUG了。运行安装包中的setup.exe,在安装界面(图 2 2)中点击Install。
图 2 2 XUG安装界面接下来的安装与普通程序的安装相同。在"Select Componets"步骤中,如图 2 3,程序将提示选择在本地计算机上将要安装的组件。此时,可以根据前面的介绍选择必要的组件即可。
图 2 3 选择要安装的XUG组件继续点击Next,程序安装成功后可以看到图 2 4的提示。
图 2 4 XUG安装成功在Windows操作系统上XUG的默认安装路径是 C:\Program Files\Prolifics\XMLink Universal Gateway 本文中的配置和例程都以这个路径说明。
下面,可以按照您计划配置的方式阅读后面的章节:
第3章,以SOAP-PRC方式配置XUG。
第4章,以RMI/IIOP方式配置XUG。
第5章,以EJB方式配置XUG。
回页首
3.以SOAP-PRC方式配置XUG
在本章,将介绍以SOAP-PRC为分发代理配置XUG的要点。
以SOAP-PRC为分发代理时,只需要在BEA Tuxedo服务器上安装和配置XUG,以下3.1~3.7节的配置都在BEA Tuxedo服务器进行,3.8节介绍了调用Web Service的注意事项,3.9节介绍了例程的使用。
3.1. 准备文件
从XUG安装目录中config文件夹复制下列文件和模版到BEA Tuxedo服务器上Tuxedo应用程序的目录(即APPDIR环境变量指定的目录,以下简称%APPDIR%)。
- SampleSoapRegistry.xml
- SampleTuxedoRegistry.xml
- Gateway.properties
- passthru.xsl (可选)
- SoapRegistry.xsd (可选,校验SampleSoapRegistry.xml)
- TuxedoRegistry.xsd (可选,校验SampleTuxedoRegistry.xml)
为了方便使用,可以把SampleSoapRegistry.xml重命名为默认文件名SoapServices.xml,SampleTuxedoRegistry.xml重命名为TuxedoServices.xml。否则需要配置指定,XUG才能找到这两个文件,参考1.6,1.11节。
3.2. 配置Gateway Tuxedo Server
首先,确保您已经正确安装配置了BEA Tuxedo。假设您已经有了一个可以正常运行的Tuxedo应用程序,接下来,我们通过修改%APPDIR%下ubbconfig文件,在这个应用程序中添加配置Gateway Tuxedo Server。
用文本编辑器打开ubbconfig文件,在其中的SERVERS段增加以下内容:
gateway SRVGRP=GROUP1 SRVID=2 CLOPT="-A -- "
其中SRVGRP和SRVID的值根据实际情况设置。在SERVICES段增加:
GATEWAY_SERVICE
注意:可以使用CLOPT参数中-J选项来指定JVM设置。因为Tuxedo对CLOPT的长度有限制,所以一般使用配置文件指定JVM设置,参考1.11节。下面的例子中,我们指定Gateway Tuxedo Server的配置文件名为MyGateway.properties。
CLOPT="-A -- -J \"-DXUG.Config=MyGateway.properties\""
3.3. 配置环境变量
1.配置Tuxedo环境变量
为了能使Tuxedo正常运行,应当正确设置以下系统环境变量:
TUXDIR 指定Tuxedo的安装目录,如" C:\bea\tuxedo8.1" APPDIR 指向Tuxedo应用(Tuxedo application)文件所在的目录,如" C:\home\me\simpapp" TUXCONFIG 指向Tuxedo配置文件的位置,如"%APPDIR%/tuxconfig" FIELDTBLS
FIELDTBLS32 指定包含FML/FML32字段表信息的文件名,如"myfml.flds" FLDTBLDIR
FLDTBLDIR32 指定FIELDTBLS/ FIELDTBLS32的搜索路径,可以不在% APPDIR %下
2.配置Gateway Tuxedo Server环境变量
XUG提供了Gateway Tuxedo Server程序及其动态连接库,可以在XUG的安装目录下找到。
在Tuxedo Server机上,配置环境变量PATH,让其包含指向gateway.exe和tconnn.dll(如果使用的是Tuxedo6.5,则是tconn6n.dll)的目录。如" C:\Program Files\Prolifics\XMLink Universal Gateway\util\tux"。
注意:在实际使用时,我们发现,如果PATH路径中不含jvm.dll,Gateway.exe将无法运行。以SOAP-IIOP配置XUG时,使用Sun JDK或IBM JDK都可以,找到已经安装JDK中的jvm.dll文件,在PATH中加入路径,如: C:\Program Files\ibm\ws\ADIE\runtimes\ee_v51\java\jre\bin\classic
3.4. 配置Gateway Tuxedo Server所需的JAVA环境变量
为了能使Gateway Tuxedo Server正常运行,需要在环境变量CLASSPATH中添加以下jar的位置:
JAR 说明位置 Gateway.jar Gateway适配器文件可在XUG的安装目录下找到 j2ee.jar J2EE连接器结构类和JNDI服务可在IBM Websphere Application Server运行环境中搜索找到。 soap.jar SOAP RPC类 xercers.jar XML解析,应使用1.4.2或更高 xalan.jar XSL数据转换 mail.jar com.sun.mail.util.*
3.5. 配置Gateway Tuxedo Server的服务
Gateway Tuxedo Server要发布的企业服务都罗列在XML格式的Tuxedo服务定义文件中。Tuxedo服务定义文件默认的文件名是TuxedoServices.xml,你也可以通过JVM参数XUG.TuxedoServices定义自己的文件名,参考1.6,1.11节。下面给出一个例子:
<?xml version="1.0" encoding="utf-8"?>
<!-- Web Services to be advertised as Tuxedo services -->
<tuxedo-service-registry
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="TuxedoRegistry.xsd">
<Service>
<ServiceName>ConvertC2F</ServiceName>
<TuxedoAdvertise>ConvertC2F</TuxedoAdvertise>
<TuxedoInputType>
<FML>
<field name="celsiusValue"/>
</FML>
</TuxedoInputType>
<TuxedoOutputType>
<FML>
<field name="celsiusToFahrenheitReturn"/>
</FML>
</TuxedoOutputType>
</Service>
</tuxedo-service-registry>
这个文件中主要包含以下设置:
Service 设置一个服务,在一个< tuxedo-service-registry >标签中可以设置多个服务。 ServiceName 设置参考服务名,这个名称与SOAP定义文件中<service>标签中alias属性对应,参考1.10节。 TuxedoAdvertise 设置通知的Tuxedo服务名,Tuxedo客户端可以直接使用这个服务名调用服务。 TuxedoInputType 设置Tuxedo客户端的输入类型,可以是FML, FML32, STRING, CARRAY。也可以像例子中一样嵌套<FML>, <FML32>标签。 TuxedooutputType 设置向Tuxedo客户端的输出类型, 可以是FML, FML32, STRING, CARRAY。也可以像例子中一样嵌套<FML>, <FML32>标签。注意:XUG使用其中<field>标签的name属性作为返回FML字段名。如果返回的XML数据中不包含name参数,则使用TuxedooutputType列表中的第一个名字或默认值return作为FML字段名。如果TuxedooutputType列表为空,则不返回数据。当企业服务返回复杂SOAP类型时,复杂类型的元素将与多个FML字段按照name自动匹配,也可以通过数据转换定制。 FML 设置FML缓冲区的字段定义。 FML32 设置FML32缓冲区的字段定义。 field FML/FML32中的元素,其name属性指定了Tuxedo字段名。注意:当作为输入时,name名称必须与SOAP-RPC的输入参数名称匹配。当作为输出,且SOAP-RRC返回复杂类型时,这个名称须与复杂类型的元素名称匹配。
3.6. 配置SOAP-RPC的服务
SOAP-RPC服务在Gateway SOAP定义文件中定义,这个文件的默认文件名是SoapServices.xml,也可以在JVM属性XUG.SoapServices中设置,参考1.6,1.11节。下面是一个SOAP定义文件的例子:
<?xml version="1.0" encoding="UTF-8"?>
<soap-service-registry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:noNamespaceSchemaLocation="SoapRegistry.xsd">
<endpoint ID="ep1">
<URL>http://localhost:9080/TemperatureWeb/services/
ConvertTemperature</URL>
<targetObjectURI>http://www.w3.org/2001/XMLSchema</
targetObjectURI>
</endpoint>
<service alias="ConvertC2F" soap-action="WASignores" IDREF="ep1">
<method-name>celsiusToFahrenheit</method-name>
<message-in namespace="" typename="">
<param name="celsiusValue" type="xsd:double"></param>
</message-in>
<message-out namespace="http://sample"
typename="celsiusToFahrenheitResponse">
<param name="celsiusToFahrenheitReturn" type="xsd:double"/>
</message-out>
</service>
</soap-service-registry>
这个文件包括以下设置:
endpoint 指定要连接的SOAP endpoint。ID属性为endpoint起了一个别名,可以在后面配置服务时引用。 URL 指定SOAP endpoint的URL连接。 targetObjectURI 指定SOAP endpoint的targetObjectURI。这个设置应当与WSDL文件中soap:body元素的属性namespace相对应。 service 配置一个企业服务的描述。
alias属性指定了参考服务名,与Tuxedo服务定义文件中<ServiceName>标签对应,参考1.10节。
soap-action属性指定了要使用的SOAP action (在WAS中忽略soap-action属性)。 method-name 指定企业服务的名字。 message-in 企业服务的输入消息。 message-out 企业服务的输出消息。 param 指定输入输出参数。
注意:配置输入参数时,param与wsdl文件的消息(message)部分part标签的name属性相对应。name属性值应当为对应的简单SOAP类型。简单SOAP类型的数组如ArrayOfShort、ArrayOfString也可以使用。配置输出类型时,type和name属性被忽略,这些由返回的XML决定。XUG可以接受企业服务返回的复杂类型,但是这些复杂类型的元素必须为简单SOAP类型或者是XugReturn bean。
3.7. 配置Gateway Tuxedo Server的属性
Java系统属性可以配置在配置文件中,或者在JVM命令参数中。配置文件就是我们开始复制到工作目录下的Gateway.properties
以下解释一些主要的配置:
XUG.Config (可选)指定配置文件的配置文件名。默认值是Gateway.properties。如果要修改这个配置,必须在JVM命令参数中指定,参考1.6节。 XUG.Server (可选)指定使用的Gateway Tuxedo Server组件。默认值是com.prolifics.xug.server.tuxedo. TuxedoServer,而且也是目前唯一支持的组件。 XUG.DeliveryAgent 指定使用的发送代理(delivery agent),可选值有SOAP-RPC,RMI/IIOP或EJB,此时选择RMI/IIOP或默认值。 XUG.TuxedoServices (可选)指定使用的Tuxedo服务定义文件。默认值是TuxedoServices.xml。 XUG.SoapServices (可选)指定使用的SOAP服务定义文件,默认值是SoapServices.xml。 XUG.Interface.endpointx.URL
XUG.Interface.endpointx.TargetObjectURI (可选)指定默认的SOAP endpoint的URL和TargetObjectURI,当SOAP服务定义文件(SoapServices.xml)中有配置时将被覆盖。
3.8. 配置企业应用程序
以SOAP-PRC为分发代理时,不需要企业应用服务器上配置,但有要注意编码问题。注意:Web Service常用的SOAP绑定方式有文档/文字,RPC/文字,RPC/编码三种,通过我们的实验,XUG只能接受RPC/编码一种。
3.9. 以SOAP-RPC方式配置的例程
下面提供一个XUG例程,帮助大家快速配置XUG。在例程运行成功后,可以通过修改例程,快速开发自己的XUG应用。要运行例程,请按照以下步骤:
1.先决条件
在运行前,应当确保
- 安装了WSAD5且可以正常运行,
- 安装了Tuxedo7以上且可以正常运行
- 正确安装了XUG。
2.在WAS上部署 Web Service
在WSAD中新建一个J2EE1.3版本的企业应用项目,命名为WSTestEAR。
图 3 1 新建企业应用项目
在向导的EAR Module Projects页中新建一个Web Project:WSTest,如图 3 2所示
图 3 2 新建企业应用项目时新建Web项目
新建完成后,在项目WSTest上点击右键,选择导入Web模块。导入sample中提供的WSTest.war。
图 3 3 导入Web模块
- 执行Build all后,将WSTestEAR添加到服务器。
重启服务器,运行Test with Web Services Explorer,如图 3 4所示:
图 3 4 运行Test with web Services Explorer
如图 3 5,选中celsiusToFahrenheit,在文本框中输入24,点击"执行"按钮,如果在下面的"状态"中返回 celsiusToFahrenheitReturn(double):75.2 则说明Web Service安装成功。
图 3 5 验证Web Service
3.准备Tuxedo应用程序文件
从sample.zip中解压home文件夹,直接放到C盘根目录下。
4.编辑文件
在C:\home\me\xug_soap_rpc下用文本编辑器打开run.bat,根据当前计算机的实际情况编辑开头的环境变量。
JAVA_HOME 指定JDK的安装目录,注意JDK的版本不要过低。 XUG_HOME 指定XUG的安装目录 APPDIR 如果上一步中解压的home文件夹没有放入指定目录下,则应使变量APPDIR指向xug_soap_rpc文件夹。注意:同时应当修改ubbsimple文件中APPDIR和TUXCONFIG配置。
打开xug_soap_rpc文件夹中的ubbsimple文件,修改以下行:
TUXDIR="C:\bea\tuxedo8.1" 指向Tuxedo的安装目录 IBMUSER LMID=simple 将IBMUSER修改为当前计算机的计算机名。注意:计算机名中间不能带连接符-。 APPDIR=
TUXCONFIG= 如果上一步中解压的home文件夹没有放入指定目录下,则应修改。
5.运行例程
双击运行run.bat,就可以看到运行结果了。如果看到运行结果:
Send buffer is:
celsiusValue 24
Received buffer is:
celsiusToFahrenheitReturn 75.2
就证明安装和配置都正确了。
回页首
4. 以RMI/IIOP方式配置XUG
在本章,将介绍以RMI/IIOP为分发代理配置XUG的要点。
以RMI/IIOP为分发代理配置XUG时,需要分别在BEA Tuxedo服务器和企业信息系统安装和配置XUG。本章4.1~4.6节介绍了在BEA Tuxedo服务器上的配置,4.7~4.10节介绍了在企业信息系统(WAS)上的配置,4.11节讲解了例程的使用。
4.1. 准备文件
从XUG安装目录中config文件夹复制下列文件和模版到BEA Tuxedo服务器上Tuxedo应用程序的目录(即APPDIR环境变量指定的目录,以下简称%APPDIR%)。
- SampleTuxedoRegistry.xml
- Gateway.properties
- passthru.xsl (可选)
- TuxedoRegistry.xsd (可选,校验SampleTuxedoRegistry.xml)
为了方便使用,把SampleTuxedoRegistry.xml重命名为Tuxedo服务定义文件的默认名TuxedoServices.xml,否则需要额外的配置,参考1.15,1.19节。
从XUG安装目录中config文件夹复制下列文件和模版到企业信息系统(WAS)目录下。如我在C盘Program Files下安装了WASD IE版本,则这个目录指的是 C:\Program Files\IBM\WS\ADIE
- SampleSoapRegistry.xml
- Gateway.properties
- SoapRegistry.xsd (可选,校验SampleSoapRegistry.xml)
为了方便使用,把SampleSoapRegistry.xml重命名为Gateway SOAP定义文件的默认名SoapServices.xml。
注意:如果暂时无法确定这些文件放置在哪里,可以稍候进行。如果运行时提示找不到SoapServices.xml文件,把这些文件放到提示的目录下就可以了。
4.2. 配置Gateway Tuxedo Server
首先,确保您已经正确安装配置了BEA Tuxedo。假设您已经有了一个可以正常运行的Tuxedo应用程序,接下来,我们通过修改%APPDIR%下ubbconfig文件,在这个应用程序中添加配置Gateway Tuxedo Server。
用文本编辑器打开ubbconfig文件,在其中的SERVERS段增加以下内容:
gateway SRVGRP=GROUP1 SRVID=2 CLOPT="-A -- "
其中SRVGRP和SRVID的值根据实际情况设置。
在SERVICES段增加新的一行:
GATEWAY_SERVICE
注意:可以使用CLOPT参数中-J选项来指定JVM设置。因为Tuxedo对CLOPT的长度有限制,所以一般使用配置文件指定JVM设置,参考1.19节。下面的例子中,我们指定Gateway Tuxedo Server的配置文件名为MyGateway.properties。
CLOPT="-A -- -J \"-DXUG.Config=MyGateway.properties\""
4.3. 配置环境变量
1.配置Tuxedo环境变量
为了能使Tuxedo正常运行,应当正确设置以下系统环境变量:
TUXDIR 指定Tuxedo的安装目录,如" C:\bea\tuxedo8.1" APPDIR 指向Tuxedo应用(Tuxedo application)文件所在的目录,如" C:\home\me\simpapp" TUXCONFIG 指向Tuxedo配置文件的位置,如"%APPDIR%/tuxconfig" FIELDTBLS
FIELDTBLS32 指定包含FML/FML32字段表信息的文件名,如"myfml.flds" FLDTBLDIR
FLDTBLDIR32 指定FIELDTBLS/ FIELDTBLS32的搜索路径,可以不在% APPDIR %下
2.配置Gateway Tuxedo Server环境变量
XUG提供了Gateway Tuxedo Server程序及其动态连接库,可以在XUG的安装目录下找到。
在Tuxedo Server机上,配置环境变量PATH,让其包含指向gateway.exe和tconnn.dll(如果使用的是Tuxedo6.5,则是tconn6n.dll)的目录。如" C:\Program Files\Prolifics\XMLink Universal Gateway\util\tux"。
注意:在实际使用时,我们发现,如果PATH路径中不含jvm.dll,Gateway.exe将无法运行。以RMI/IIOP配置XUG时,需要用到IBM JDK1.4,所以需要在Websphere安装目录下找到相应的JDK路径,然后在PATH中加入其中含jvm.dll的路径,如: C:\Program Files\ibm\ws\ADIE\runtimes\ee_v51\java\jre\bin\classic。
4.4. 配置Gateway Tuxedo Server所需的JAVA环境变量
为了能使Gateway Tuxedo Server正常运行,需要在环境变量CLASSPATH中添加以下jar的位置:
JAR 说明位置 Gateway.jar Gateway适配器文件可在XUG的安装目录下找到 j2ee.jar J2EE连接器结构类和JNDI服务可在IBM Websphere Application Server运行环境中搜索找到。 namingclient.jar 与RMI/IIOP调用相关一些IBM JAVA类 xalan.jar XSL数据转换 mail.jar com.sun.mail.util.* Deployed_GatewayAdapter .jar 部署GatewayAdapter.jar后生成的jar文件参考1.20节
4.5. 配置Gateway Tuxedo Server的服务
Gateway Tuxedo Server要发布的企业服务都罗列在XML格式的Tuxedo服务定义文件中。Tuxedo服务定义文件默认的文件名是TuxedoServices.xml,你也可以通过JVM参数XUG.TuxedoServices定义自己的文件名,参考1.15,1.19节。下面给出一个例子:
<?xml version="1.0" encoding="utf-8"?>
<!-- Web Services to be advertised as Tuxedo services -->
<tuxedo-service-registry
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="TuxedoRegistry.xsd">
<Service>
<ServiceName>ConvertC2F</ServiceName>
<TuxedoAdvertise>ConvertC2F</TuxedoAdvertise>
<TuxedoInputType>
<FML>
<field name="celsiusValue"/>
</FML>
</TuxedoInputType>
<TuxedoOutputType>
<FML>
<field name="celsiusToFahrenheitReturn"/>
</FML>
</TuxedoOutputType>
</Service>
</tuxedo-service-registry>
这个文件中主要包含以下设置:
Service 设置一个服务,在一个< tuxedo-service-registry >标签中可以设置多个服务。 ServiceName 设置参考服务名,这个名称与SOAP定义文件中<service>标签中alias属性对应,参考1.23节。 TuxedoAdvertise 设置通知的Tuxedo服务名,Tuxedo客户端可以直接使用这个服务名调用服务。 TuxedoInputType 设置Tuxedo客户端的输入类型,可以是FML, FML32, STRING, CARRAY。也可以像例子中一样嵌套<FML>, <FML32>标签。 TuxedooutputType 设置向Tuxedo客户端的输出类型, 可以是FML, FML32, STRING, CARRAY。也可以像例子中一样嵌套<FML>, <FML32>标签。注意:XUG使用其中<field>标签的name属性作为返回FML字段名。如果返回的XML数据中不包含name参数,则使用TuxedooutputType列表中的第一个名字或默认值return作为FML字段名。如果TuxedooutputType列表为空,则不返回数据。
当企业服务返回复杂SOAP类型时,复杂类型的元素将与多个FML字段按照name自动匹配,也可以通过数据转换定制。 FML 设置FML缓冲区的字段定义。 FML32 设置FML32缓冲区的字段定义。 field FML/FML32中的元素,其name属性指定了Tuxedo字段名。注意:当作为输入时,name名称必须与SOAP-RPC的输入参数名称匹配。当作为输出,且SOAP-RRC返回复杂类型时,这个名称须与复杂类型的元素名称匹配。
4.6. 配置Gateway Tuxedo Server的属性
Java系统属性可以配置在配置文件中,或者在JVM命令参数中。配置文件就是我们开始复制到工作目录下的Gateway.properties。
以下解释一些以RMI/IIOP方式配置时,在Gateway Tuxedo Server端有效的主要配置:
XUG.Config (可选)指定配置文件的配置文件名。默认值是Gateway.properties。如果要修改这个配置,必须在JVM命令参数中指定,参考1.15节。 XUG.Server (可选)指定使用的Gateway Tuxedo Server组件。默认值是com.prolifics.xug.server.tuxedo. TuxedoServer,而且也是目前唯一支持的组件。 XUG.DeliveryAgent 指定使用的发送代理(delivery agent),可选值有SOAP-RPC,RMI/IIOP或EJB,此时选择RMI/IIOP。 XUG.TuxedoServices (可选)指定使用的Tuxedo服务定义文件。默认值是TuxedoServices.xml。 XUG.GatewayAdapter.JNDIName (可选)指定查找Gateway Adapter EJB的JNDI名称,默认值是com/prolifics/xug/dda /adapter/GatewayAdapterHome
还要在这个文件中添加一个非常重要的配置属性:
java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory
另外,如果企业信息服务器不在本机,或端口号不是默认的2809,则可以添加如下的配置属性,指定IIOP连接:
java.naming.provider.url=iiop://192.168.1.1:900
4.7. 部署Gateway Adapter EJB
Gateway Adapter EJB应当部署在企业应用服务器上,下面我们以在WSAD测试环境中的部署为例,介绍部署的方法。
1.打开WSAD,切换到J2EE透视图。
2.新建一个EJB项目:
图 4 1 新建EJB项目选择EJB2.0项目。在EJB Project页中填入项目名称GatewayAdapter,不要选择"Create EJB client JAR project"。新建一个EAR项目,GatewayAdapterEAR,如图 4 2所示:
图 4 2 新建EJB项目和EAR项目3.在EJB项目中导入EJB Jar:
图 4 3 导入EJB Jar如图 4 4,打开导入EJB Jar向导,找到XUG安装目录下lib文件夹中的GatewayAdapter.jar,然后导入。
图 4 4 导入GatewayAdapter.jar导入EJB Jar以后,在GatewayAdapter项目的属性中编译路径中添加Gateway.jar。然后按Ctrl+B编译所有项目。
4.生成部署代码
如图 4 5所示,在EJB项目GatewayAdapter的右键菜单中选择Generate -> Deployment and RMIC Code,生成部署EJB的代码。
图 4 5 生成部署代码5.设置查找EJB用的JNDI 打开GateayAdapter项目中ejbModule\ejb-jar.xml文件(可以切换到Project Navigator视图寻找),切换到beans选项卡,在框中选中GatewayAdapter,在右侧JNDI name中填写:
com/prolifics/xug/dda/adapter/GatewayAdapterHome
然后保存文件。
图 4 6 设置JNDI名6.导出部署后的GatewayAdapter Jar文件
在GatewayAdapter项目上点右键,选择导出Jar文件。如图 4 7,导出ejbModule,imported_classes两个文件夹到Deployed_GatewayAdapter.jar文件。
图 4 7 导出部署后Jar文件这个导出后的Jar文件必须添加到Gateway Tuxedo Server的CLASSPATH环境变量中,参考1.16节。
4.8. 配置Webshpere中的JAVA环境变量
1.新建一个测试服务器,然后打开服务器配置页面。在Environment选项卡中的Class Path中添加Gateway.jar,GatewayAdapter.jar和soap.jar(可在Websphere安装文件夹下找到),如图 4 8所示。然后保存文件。
图 4 8 设置Websphere环境变量2.在测试服务器上右键,选择Add and remove projects,从中选择项目GatewayAdapterEAR添加到测试服务器。然后Websphere测试环境将启动。观察控制台,如果启动EJB没有错误,则说明部署成功。
图 4 9 添加EAR项目项目4.9. 配置EJB属性文件
Gateway Adapter EJB使用一些和Gateway Tuxedo Server相同的配置属性,如果你使用的都是默认值,那么就不需要额外的配置。对Gateway Adapter EJB有效的配置属性包括:
XUG.Config (可选)指定配置文件的配置文件名。默认值是Gateway.properties。如果要修改这个配置,必须在JVM命令参数中指定。 XUG.SoapServices (可选)指定使用的SOAP服务定义文件,默认值是SoapServices.xml。 XUG.Interface.endpointx.URL
XUG.Interface.endpointx
.TargetObjectURI
(可选)指定默认的SOAP endpoint的URL和TargetObjectURI,当SOAP服务定义文件(SoapServices.xml)中有配置时将被覆盖。
XUG.Config指定了Gateway Adapter EJB使用的配置属性文件,默认值为Gateway.properties。其它的属性都可以在这个文件中配置,但是如果要修改XUG.Config,则只能通过JVM参数配置。如图 4 10所示,我们计划把Gateway Adapter EJB属性文件命名为GatewayAdapter.properties,在WSAD中打开服务器配置,切换到其中的Environment选项卡,在Java VM Arguments框中输入:
-DXUG.Config=GatewayAdapter.properties
图 4 10 配置EJB属性
注意:Gateway Adapter EJB属性配置文件中不能将XUG.DeliveryAgent配置成RMI/IIOP,否则将引起致命的错误。
4.10. 配置企业服务
企业服务在Gateway SOAP定义文件中定义,这个文件的默认文件名是SoapServices.xml,也可以在JVM属性XUG.SoapServices中设置。在RMI/IIOP实现中,Gateway SOAP定义文件放在企业应用程序一端。下面是一个SOAP定义文件的例子:
<?xml version="1.0" encoding="UTF-8"?>
<soap-service-registry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:noNamespaceSchemaLocation="SoapRegistry.xsd">
<endpoint ID="ep1">
<URL>http://localhost:9080/TemperatureWeb/
services/ConvertTemperature</URL>
<targetObjectURI>http://www.w3.org/2001/
XMLSchema</targetObjectURI>
</endpoint>
<service alias="ConvertC2F" soap-action="WASignores" IDREF="ep1">
<method-name>celsiusToFahrenheit</method-name>
<message-in namespace="" typename="">
<param name="celsiusValue" type="xsd:double"></param>
</message-in>
<message-out namespace="http://sample"
typename="celsiusToFahrenheitResponse">
<param name="celsiusToFahrenheitReturn" type="xsd:double"/>
</message-out>
</service>
</soap-service-registry>
这个文件包括以下设置:
endpoint 指定要连接的SOAP endpoint。ID属性为endpoint起了一个别名,可以在后面配置服务时引用。 URL 指定SOAP endpoint的URL连接。 targetObjectURI 指定SOAP endpoint的targetObjectURI。这个设置应当与WSDL文件中soap:body元素的属性namespace相对应。 service 配置一个企业服务的描述。
alias属性指定了参考服务名,与Tuxedo服务定义文件中<ServiceName>标签对应,参考1.18节。
soap-action属性指定了要使用的SOAP action (在WAS中忽略soap-action属性)。 method-name 指定企业服务的名字。 message-in 企业服务的输入消息。 message-out 企业服务的输出消息。 param 指定输入输出参数。
注意:配置输入参数时,param与wsdl文件的消息(message)部分part标签的name属性相对应。name属性值应当为对应的简单SOAP类型。简单SOAP类型的数组如ArrayOfShort、ArrayOfString也可以使用。
配置输出类型时,type和name属性被忽略,这些由返回的XML决定。XUG可以接受企业服务返回的复杂类型,但是这些复杂类型的元素必须为简单SOAP类型或者是XugReturn bean。
1.24. 以RMI/IIOP方式配置的例程
下面提供一个以RMI/IIOP配置XUG的例程,帮助大家快速配置XUG。在例程运行成功后,可以通过修改例程,快速开发自己的XUG应用。要运行例程,请按照以下步骤:
1.先决条件
在运行前,应当确保
- 安装了WSAD5且可以正常运行
- 安装了Tuxedo7以上且可以正常运行
- 正确安装了XUG
2.在WAS上部署Gateway Adapter EJB
请参考1.20,1.21节部署Gateway Adapter EJB并配置WAS的环境变量,不需要导出Deployed_GatewayAdapter.jar,启动WAS。如果启动时Gateway Adapter EJB部分的提示没有错误,则证明Gateway Adapter EJB安装成功,如图 4 11所示:
图 4 11 Gateway Adapter EJB成功启动3.在WAS上安装Web Service
在WSAD中新建一个J2EE1.3版本的企业应用项目,命名为WSTestEAR。
图 4 12 新建企业应用项目
在向导的EAR Module Projects页中新建一个Web Project:WSTest,如图 4 13所示:
图 4 13 新建企业应用项目时新建Web项目
新建完成后,在项目WSTest上点击右键,选择导入Web模块。导入sample中提供的WSTest.war。
图 4 14 导入Web模块
- 执行Build all后,将WSTestEAR添加到服务器。
重启服务器,运行Test with Web Services Explorer,如图 4 15所示:
图 4 15 运行Test with Web Services Explorer
如图 4 16,选中celsiusToFahrenheit,在文本框中输入24,点击"执行"按钮,如果在下面的"状态"中返回 celsiusToFahrenheitReturn(double):75.2 则说明Web Service安装成功。
图 4 16 验证Web Service
- 放置配置文件。复制Sample.zip压缩包中的RMI_IIOP EIS Files文件夹下的Gateway.properties和SoapServices.xml文件到WAS的目录下。例如我的WSAD IE安装在C:\Program Files\IBM\WS\ADIE\目录下,则将两个文件复制到这个目录下。如果无法确定文件放置的具体位置,可以参考第5步。
4.准备Tuxedo应用程序文件
从sample.zip中解压home文件夹,直接放到C盘根目录下。
5.编辑文件
在C:\home\me\xug_rmi_iiop下用文本编辑器打开run.bat,根据当前计算机的实际情况编辑开头的环境变量。
EE_HOME 指向WAS的安装目录,例如我安装的是WSAD IE,这个目录为C:\Program Files\IBM\WS\ADIE\runtimes\ee_v51 XUG_HOME 指定XUG的安装目录 APPDIR 如果上一步中解压的home文件夹没有放入指定目录下,则应使变量APPDIR指向xug_rmi_iiop文件夹。注意:同时应当修改ubbsimple文件中APPDIR和TUXCONFIG配置。
打开xug_soap_rpc文件夹中的ubbsimple文件,修改以下行:
TUXDIR="C:\bea\tuxedo8.1" 指向Tuxedo的安装目录 IBMUSER LMID=simple 将IBMUSER修改为当前计算机的计算机名。注意:计算机名中间不能带连接符-。 APPDIR=
TUXCONFIG= 如果上一步中解压的home文件夹没有放入指定目录下,则应修改。
6.运行例程
编辑好上述文件后,双击运行run.bat,就可以看到运行结果了。
如果控制台提示找不到配置文件SoapServices.xml,则将Sample.zip压缩包中的RMI_IIOP EIS Files文件夹下的Gateway.properties和SoapServices.xml文件复制到相应的目录下即可。如图 4 17,这台机器需要将Gateway.properties和SoapServices.xml文件复制到E:\IBM\WS\ADIE目录下。
图 4 17 无法找到配置文件注意:如果此时在run.bat时无法正常关闭Tuxedo Server,需要重新启动计算机来清除错误。
重新运行run.bat如果看到运行结果:
Send buffer is:
celsiusValue 24
Received buffer is:
celsiusToFahrenheitReturn 75.2
就证明安装和配置都正确了。
回页首
5.以EJB方式配置XUG
在本章,将介绍以EJB为分发代理配置XUG的要点。
以EJB为分发代理配置XUG时,只需要在BEA Tuxedo服务器端安装和配置XUG。本章1.25~1.32节介绍了配置的细节,1.33节讲解了例程的使用。
5.1. 准备文件
从XUG安装目录中config文件夹复制下列文件和模版到BEA Tuxedo服务器上Tuxedo应用程序的目录(即APPDIR环境变量指定的目录,以下简称%APPDIR%)。
- SampleTuxedoRegistry.xml
- Gateway.properties
- passthru.xsl (可选)
- TuxedoRegistry.xsd (可选,校验SampleTuxedoRegistry.xml)
- EJBRegistry.xsd (可选,校验EJBServices.xml)
为了方便使用,把SampleTuxedoRegistry.xml重命名为Tuxedo服务定义文件的默认名TuxedoServices.xml,否则需要额外的配置,参考1.26,1.31节。
在%APPDIR%下新建一个EJBServices.xml文件,其具体内容参考1.30节。
5.2. 配置Gateway Tuxedo Server
首先,确保您已经正确安装配置了BEA Tuxedo。假设您已经有了一个可以正常运行的Tuxedo应用程序,接下来,我们通过修改%APPDIR%下ubbconfig文件,在这个应用程序中添加配置Gateway Tuxedo Server。
用文本编辑器打开ubbconfig文件,在其中的SERVERS段增加以下内容:
gateway SRVGRP=GROUP1 SRVID=2 CLOPT="-A -- "
其中SRVGRP和SRVID的值根据实际情况设置。
在SERVICES段增加新的一行:
GATEWAY_SERVICE
注意:可以使用CLOPT参数中-J选项来指定JVM设置。因为Tuxedo对CLOPT的长度有限制,所以一般使用配置文件指定JVM设置,参考1.31节。下面的例子中,我们指定Gateway Tuxedo Server的配置文件名为MyGateway.properties。
CLOPT="-A -- -J \"-DXUG.Config=MyGateway.properties\""
5.3. 配置环境变量
1.配置Tuxedo环境变量
为了能使Tuxedo正常运行,应当正确设置以下系统环境变量:
TUXDIR 指定Tuxedo的安装目录,如" C:\bea\tuxedo8.1" APPDIR 指向Tuxedo应用(Tuxedo application)文件所在的目录,如" C:\home\me\simpapp" TUXCONFIG 指向Tuxedo配置文件的位置,如"%APPDIR%/tuxconfig" FIELDTBLS FIELDTBLS32 指定包含FML/FML32字段表信息的文件名,如"myfml.flds" FLDTBLDIR FLDTBLDIR32 指定FIELDTBLS/ FIELDTBLS32的搜索路径,可以不在% APPDIR %下
2.配置Gateway Tuxedo Server环境变量
XUG提供了Gateway Tuxedo Server程序及其动态连接库,可以在XUG的安装目录下找到。
在Tuxedo Server机上,配置环境变量PATH,让其包含指向gateway.exe和tconnn.dll(如果使用的是Tuxedo6.5,则是tconn6n.dll)的目录。如" C:\Program Files\Prolifics\XMLink Universal Gateway\util\tux"。
注意:在实际使用时,我们发现,如果PATH路径中不含jvm.dll,Gateway.exe将无法运行。以EJB配置XUG时,需要用到IBM JDK1.4,所以需要在Websphere安装目录下找到相应的JDK路径,然后在PATH中加入其中含jvm.dll的路径,如:
C:\Program Files\ibm\ws\ADIE\runtimes\ee_v51\java\jre\bin\classic
5.4. 配置Gateway Tuxedo Server所需的JAVA环境变量
为了能使Gateway Tuxedo Server正常运行,需要在环境变量CLASSPATH中添加以下jar的位置:
JAR 说明位置 Gateway.jar Gateway适配器文件可在XUG的安装目录下找到 j2ee.jar J2EE连接器结构类和JNDI服务可在IBM Websphere Application Server运行环境中搜索找到。 namingclient.jar 与RMI/IIOP调用相关一些IBM JAVA类 xalan.jar XSL数据转换 mail.jar com.sun.mail.util.* myEJBs.jar 要调用的EJB部署后的Jar文件参考1.32节
5.5. 配置Gateway Tuxedo Server的服务
Gateway Tuxedo Server要发布的企业服务都罗列在XML格式的Tuxedo服务定义文件中。Tuxedo服务定义文件默认的文件名是TuxedoServices.xml,你也可以通过JVM参数XUG.TuxedoServices定义自己的文件名,参考1.26,1.31节。下面给出一个例子:
<?xml version="1.0" encoding="utf-8"?>
<!-- Web Services to be advertised as Tuxedo services -->
<tuxedo-service-registry
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="TuxedoRegistry.xsd">
<Service>
<ServiceName>ConvertC2F</ServiceName>
<TuxedoAdvertise>ConvertC2F</TuxedoAdvertise>
<TuxedoInputType>
<FML>
<field name="celsiusValue"/>
</FML>
</TuxedoInputType>
<TuxedoOutputType>
<FML>
<field name="celsiusToFahrenheitReturn"/>
</FML>
</TuxedoOutputType>
</Service>
</tuxedo-service-registry>
这个文件中主要包含以下设置:
Service 设置一个服务,在一个< tuxedo-service-registry >标签中可以设置多个服务。 ServiceName 设置参考服务名,这个名称与EJB定义文件中<service>标签中alias属性对应,参考1.30节。 TuxedoAdvertise 设置通知的Tuxedo服务名,Tuxedo客户端可以直接使用这个服务名调用服务。 TuxedoInputType 设置Tuxedo客户端的输入类型,可以是FML, FML32, STRING, CARRAY。也可以像例子中一样嵌套<FML>, <FML32>标签。 TuxedooutputType 设置向Tuxedo客户端的输出类型, 可以是FML, FML32, STRING, CARRAY。也可以像例子中一样嵌套<FML>, <FML32>标签。注意:XUG使用其中<field>标签的name属性作为返回FML字段名。如果返回的XML数据中不包含name参数,则使用TuxedooutputType列表中的第一个名字或默认值return作为FML字段名。如果TuxedooutputType列表为空,则不返回数据。当企业服务返回复杂SOAP类型时,复杂类型的元素将与多个FML字段按照name自动匹配,也可以通过数据转换定制。 FML 设置FML缓冲区的字段定义。 FML32 设置FML32缓冲区的字段定义。 field FML/FML32中的元素,其name属性指定了Tuxedo字段名。注意:当作为输入时,name名称必须与SOAP-RPC的输入参数名称匹配。当作为输出,且SOAP-RRC返回复杂类型时,这个名称须与复杂类型的元素名称匹配。
还要在这个文件中添加一个非常重要的配置属性:
java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory
另外,如果企业信息服务器不在本机,或端口号不是默认的2809,则可以添加如下的配置属性,指定IIOP连接
:
java.naming.provider.url=iiop://192.168.1.1:900
5.6. 配置EJB服务
当XUG以EJB方式配置时,直接与业务逻辑EJB交互,所以我们需要在EJBServices.xml中定义EJB存取,下面是一个EJBServices.xml文件的例子:
<?xml version="1.0"?>
<ejb-service-registry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:noNamespaceSchemaLocation="EJBRegistry.xsd"
xmlns:xsd1="http://www.testservice.com/schemas/TestServiceRemoteI
nterface">
<endpoint ID="ep1">
<JNDIName>sample/bean/StockQuoteServiceHome</JNDIName>
</endpoint>
<service alias="QUOTE_SERVICE" IDREF="ep1">
<method-name>getQuote</method-name>
<method-in>
<param name="symbol" type="Ljava.lang.String;" />
</method-in>
<method-out>
<param name="return" type="Ljava.lang.Float;" />
</method-out>
</service>
</ejb-service-registry>
这个文件包括以下设置:
endpoint 指定要连接的SOAP endpoint。ID属性为endpoint起了一个别名,可以在后面配置服务时引用。 URL 指定SOAP endpoint的URL连接。 targetObjectURI 指定SOAP endpoint的targetObjectURI。这个设置应当与WSDL文件中soap:body元素的属性namespace相对应。 service 配置一个企业服务的描述。 alias属性指定了参考服务名,与Tuxedo服务定义文件中<ServiceName>标签对应,参考1.29节。
soap-action属性指定了要使用的SOAP action (在WAS中忽略soap-action属性)。 method-name 指定企业服务的名字。 message-in 企业服务的输入消息。 message-out 企业服务的输出消息。 param 指定输入输出参数。注意:配置输入参数时,param与wsdl文件的消息(message)部分part标签的name属性相对应。
5.7. 配置Gateway Tuxedo Server的属性
Java系统属性可以配置在配置文件中,或者在JVM命令参数中。配置文件就是我们开始复制到工作目录下的Gateway.properties 以下解释一些以EJB方式配置时,在Gateway Tuxedo Server端有效的主要配置:
XUG.Config (可选)指定配置文件的配置文件名。默认值是Gateway.properties。如果要修改这个配置,必须在JVM命令参数中指定,参考1.26节。 XUG.Server (可选)指定使用的Gateway Tuxedo Server组件。默认值是com.prolifics.xug.server.tuxedo.
TuxedoServer,而且也是目前唯一支持的组件。 XUG.DeliveryAgent 指定使用的发送代理(delivery agent),可选值有SOAP-RPC,RMI/IIOP或EJB,此时选择EJB。 XUG.TuxedoServices (可选)指定使用的Tuxedo服务定义文件。默认值是TuxedoServices.xml。
5.8. 配置部署后的EJB Jar文件
在配置这一步前,请确保您已经成功部署了一个包含EJB服务的EJB项目,可以在服务器上运行。
在部署好的EJB项目上点击右键,选择Export->Jar File,导出其中的Class文件到一个Jar文件中,然后在Tuxedo应用程序环境变量的CLASSPATH中增加这个Jar文件。
5.9. 以EJB方式配置的例程
下面提供一个以EJB配置XUG的例程,帮助大家快速配置XUG。在例程运行成功后,可以通过修改例程,快速开发自己的XUG应用。要运行例程,请按照以下步骤:
1.先决条件
在运行前,应当确保
- 安装了WSAD5且可以正常运行
- 安装了Tuxedo7以上且可以正常运行
- 正确安装了XUG
2.在WAS上部署EJB Service
- 在WASD中切换到J2EE视图。
- 在Enterprise Applications文件夹上右键,选择Import->Import EAR:
图 5 1 导入EAR项目在向导第一步中浏览选择Sample文件夹下的JavaEJBSampleEAR.ear文件,在第二步中选中Perserve project name, classpaths, and meta-data included in the EAR。点Finish完成导入。
图 5 2 导入EAR项目这样导入的同时导入了类路径等信息,如果与您机器上的路径不相符,则需要在项目属性的Java构建路径中修改。
图 5 3 导入EAR后可能出错将项目添加到WAS测试环境中,然后启动WAS。如果缺少xalan.jar,xerces.jar可以在sample\home\me\xug_soap_rpc\lib下找到。
3.准备Tuxedo应用程序文件
从sample.zip中解压home文件夹,直接放到C盘根目录下。
4.编辑文件
在C:\home\me\xug_ejb下用文本编辑器打开run.bat,根据当前计算机的实际情况编辑开头的环境变量
EE_HOME 指向WAS的安装目录,例如我安装的是WSAD IE,这个目录为C:\Program Files\IBM\WS\ADIE\runtimes\ee_v51 XUG_HOME 指定XUG的安装目录 APPDIR 如果上一步中解压的home文件夹没有放入指定目录下,则应使变量APPDIR指向xug_ejb文件夹。注意:同时应当修改ubbsimple文件中APPDIR和TUXCONFIG配置。
打开xug_soap_rpc文件夹中的ubbsimple文件,修改以下行:
TUXDIR="C:\bea\tuxedo8.1" 指向Tuxedo的安装目录 IBMUSER LMID=simple 将IBMUSER修改为当前计算机的计算机名。注意:计算机名中间不能带连接符-。 APPDIR=
TUXCONFIG= 如果上一步中解压的home文件夹没有放入指定目录下,则应修改。
5.运行例程
编辑好上述文件后,双击运行run.bat,就可以看到运行结果了。
如果看到运行结果:
Send buffer is:
symbol IBM
Received buffer is:
return 100
就证明安装和配置都正确了。
该贴被barry编辑于2012-2-17 10:16:15