wtc java 代码 tpcall(servicename_[转载]Dorado+Spring+Wtc+Tuxedo开发

Dorado、Spring、WTC开发配置

本文档描述了如何使用WebLogic Tuxedo连接器将weblogic

server8.1和tuxedo8.1互连(装好WebLogic和Tuxedo)。配置文档使用weblogic自带的例子simpapp(一个Web

Project:在WebLogic中发布Web时使用)

(C:beaweblogic81samplesserverexamplessrcexampleswtcatmisimpapp),

以及tuxedo自带的例子simpapp(一个Tuxedo

Service程序:作为Tuxedo服务)

(C:beatuxedo8.1samplesatmisimpapp)。

这里认为Web工程和Tuxedo服务程序已经写好。下面将Web

Project在WebLogic中发布,但由于该工程想要调用Tuxedo服务,所以要在WebLogic中配置WTC好来建立与Tuxedo的连接(第一部分讲述如何配置WTC)。由于采用WTC调用Tuxedo服务,所以在将Tuxedo服务开启前要对Tuxedo服务进行特别的配置以使它与WTC连接上(第二部分讲述)。最后就可以发布WEB.

对unix用户可将本文中"" 换成 "/",并将 ".cmd" 换成 ".sh"。

本例提供以下服务:

TOUPPER:一个tuxedo方服务,用于将字符串转换为大写。Weblogic端客户通过调用TOUPPER

EJB来获取这个服务。

TOLOWER:一个weblogic

server端的EJB实现的服务。可被tuxedo端客户调用。

本例包含以下两个域:

TDOM2:weblogic使用的域

TDOM1:tuxedo使用的域

一. 配置WebLogic

Tuxedo连接器服务:

1.1 在WebLogic 中配置WTC

1.通过WebLogic的Configuration

Wizard建立一个新的WebLogic服务(按照向导来,注意用户名密码)。

2.然后启动WebLogic服务,如下图

3.输入http://localhost:7001/console进入WebLogic控制台(要输入用户名密码)

控制台如下图:

(注意:

以下加黑字段是要与TUXEDO的两个配置文件(tuxconfig,bdmconfig)中的属性字段相对应)

(1)进入Services→WTC,创建一个新的WTC

Service。本例中用户名为mySimpapp。

(2)进入Services→WTC→mySimpapp→Contents标签→Local APs

标签,创建一个本地tuxedo访问点:

Access Point: TDOM2(随意起名)

AccessPoint ID: TDOM2(以上两个可以不同)

Network Address: //localhost:5678

添好上述内容后,点创建。

(3)进入Services→WTC→mySimpapp→Contents标签→Remote APs

标签,创建一个远程tuxedo访问点:

Access Point: TDOM1

AccessPoint ID: TDOM1

Local Access Point: TDOM2

Network Address: //localhost:1234

添好上述内容后,点创建。

? 注意:WebLogic

Tuxedo连接器服务以及在tuxedo端的dom文件中的地址方式可以是计算机名(在win平台下)、ip地址或localhost。Tuxedo和weblogic两方可以不同。但如果weblogic和tuxedo两端在同一台机器上,并且需要使用127.0.0.1方式,则要求两方同时都使用这种方式。否则两方无法连通。对全域名方式没有进行试验。

(4)进入Services→WTC→mySimpapp→Contents标签→Exported

标签,创建一个输出服务:(注意:如果只是通过EJB调用Tuxedo则不用配置该项)

Resource Name: TOLOWER

Local Access Point: TDOM2

EJB Name: tuxedo.services.TOLOWERHome

添好上述内容后,点创建。

(5)进入Services→WTC→mySimpapp→Contents标签→

imported 标签,创建一个输入服务:

Resource Name: TOUPPER

Local Access Point: TDOM2

Remote Access Point List: TDOM1

Remote Name :TOUPPER

添好上述内容后,点创建。

(6)进入Services→WTC→mySimpapp→Target and Deploy

标签,在examplesServer前打钩,然后点Apply。

通过以上配置,WebLogic Tuxedo连接器就设置好了。

以上是基本配置,其中还有很多的属性可以配置,目前采用默认。

1.2配置Tuxedo:

1打开一个cmd控制台,修改路径到tuxedo的%TUXDIR%samplesatmisimpapp (注意:该路径是tuxedo一个例子的路径,我们目前使用该例子)

2. 设置环境变量:(注意:具体使用自己的路径)

我的电脑-----〉属性-----〉高级----〉环境变量。

TUXDIR: tuxedo安装路径

APPDIR: 例子所在路径

PATH: bin

TUXCONFIG,BDMCONFIG: 该Tuxedo例子程序的配置文件所在路径

3. 编译例子server端程序和client端程序:(这里我们只需要它的server端。以下命令都是在例子所在目录输入)

buildclient -o simpcl -f simpcl.c

buildserver -o simpserv -f simpserv.c -s TOUPPER

4. 配置tuxconfig(重要:

要于WTC中的配置相对应):修改ubbdomain中的环境变量:设置ipckey,APPDIR,TUXCONFIG,TUXDIR,Machine-name

注意:服务名SERVICES: TOUPPER

5. 装载ubb文件:tmloadcf -y ubbdomain

6. 配置bdmconfig(重要:要于WTC中的配置相对应):修改dom1config文件:设置DMTLOGDEV,AUDITLOG,TDOM1 NWADDR,TDOM2 NWADDR

注意: DOMAINID=”TDOM1”

DOMAININ=”TDOM2”

它们与WTC acess point id 对应。

NWADDR与WTC中network adress对应。

TOUPPER,TOLOWER服务名

7. 装载dom文件:

dmloadcf -y dom1config

8. 启动tuxedo:tmboot –y

确保所有服务启动成功。

二.创建JAVA EE应用程序

为了实现对Tuxedo服务的调用,并且将服务和具体的实现分离,采用JAVA

EE程序利用t3协议,通过WTC调用后台Tuxedo服务,从而将具体服务的实现细节进行屏蔽,能够和传统的开发过程一样,通过调用JAVA

EE中的服务,实现对Tuxedo服务的调用.

2.1搭建开发调试环境

因为WTC连接无法在应用程序中获得,只能在JSP,

SERVLET,EJB的容器中才能被实例化,所以必须要使用JSP才能测试是否能够通过WTC对Tuxedo进行调用,同时WTC是Weblogic下的一个服务,所以必须开发环境中配置应用服务器(该项目开发的java开发工具使用eclipse

3.+myeclipse5.0)。

启动eclipse后创建一个java project,配置好build

path,假定当前工程名称:kbsDemo,所有程序的源文件放于:/kbsDemo/src下,类文件放于:/kbsDemo/classes下。

选择eclipse中windown菜单下的preference菜单项

进入下面的界面

选择MyEclipse,配置应用服务器设置

选择当前使用的应用服务器(该项目使用weblogic8)后,逐项填写右边的配置项,请注意,将Weblogic

Sever下面的Enable选定。

其中:

BEA Home directory:weblogic的安装路径根目录

Weblogic installation Directory:weblogicServer的安装位置

下面紧接着的两项是Weblogic Server的管理员帐号,密码

Execution domain

root:配置weblogic时的用户服务器所在的位置,到Server层

Execution domain name: Weblogic Server用户服务器的 域名

Execution Server name: Weblogic

Server用户服务器的 名称

还有一个必填项:security policy file:

%BEAHOME/weblogic81/server/weblogic.policy

确认后继续配置

最后在path中加入两个jar包

一个是weblogicservice.jar,另外一个是weblogic.jar,这两个文件都可以在

Server/lib中找到。确认后即可在Eclipse中看到如下界面

点击应用服务器图标即可看到Weblogic Server已经添加到Eclipse中

点击start即可启动应用服务器。

2.2编写JAVA EE应用程序

JAVA EE应用程序主体如下:

Context ctx;

TuxedoConnectionFactory tcf;

TuxedoConnection myTux; TypedString myData;

Reply myRtn;//WTC调用Tuxedo时返回的对象类型为Reply

Environment env = null;

try {

ctx = env.getInitialContext();//获得context实例

tcf = (TuxedoConnectionFactory)

ctx.lookup("tuxedo.services.TuxedoConnection");

//通过jndi查找java应用服务,其中tuxedo.services.TuxedoConnection

// 是weblogic wtc提供的jndi节点名称

} catch (NamingException ne) {

// Could not get the tuxedo object, throw TPENOENT

throw new TPException(TPException.TPENOENT,"Could not get

TuxedoConnectionFactory : " + ne);

}

myTux =

tcf.getTuxedoConnection();//通过TuxedoConnectionFactory获得TuxedoConnection对象

myData = new TypedString(toConvert);//将调用Tuxedo

方法的字符类型的实参转换为TypedString类型

try {

myRtn = myTux.tpcall("TOUPPER", myData,

0);//通过TuxedoConnection调用在WTC中配置的Tuxedo 服务

返回Reply对象

} catch (TPReplyException tre) {

log("tpcall threw TPReplyExcption " + tre);

throw tre;

} catch (TPException te) {

log("tpcall threw TPException " + te);

throw te;

} catch (Exception ee) {

log("tpcall threw exception: " + ee);

throw new TPException(TPException.TPESYSTEM, "Exception: " +

ee);

}

log("tpcall successfull!");

myData = (TypedString)

myRtn.getReplyBuffer();//从ReplyBuffer中取回返回对象,并转换为TypedString

myTux.tpterm(); // Closing the association with

Tuxedo

2.3创建测试用的Web工程

该web工程是一个普通的web项目,采用Dorado生成一个web工程框架后,可以使用两种方式对3.2中的JAVA

EE程序进行测试:

(1)使用jsp以java Bean方式调用JAVA EE 应用程序中的相应方法

(2)采用Dorado开发一个相对完整的web服务调用JAVA

EE应用程序中的方法

将web工程连同JAVA EE 应用程序部署到Weblogic

Server下,运行该Web工程,检查输出结果,和控制台端的输出信息,对JAVA

EE应用程序进行调试。

如何部署web工程详见第6部分:部署Web Application Mudule

3.构建Spring应用

为了将JAVA

EE中的服务通过Spring导入,向Dorado提供服务,需要在Spring中编写特定的程序,根据目前的实现情况来看,Spring中的Dao层由JAVA

EE应用程序替代,由于不需要直接去操作数据库,所以peer层的peer对象也简化为对Tuxedo服务对象的映射,而实际调用Tuxedo的部分由Spring的Service层实现,直接定义JAVA

EE程序中定义的类变量,通过依赖注入获得相关服务。

4.创建Dorado工程

为了快速构建web界面,采用Dorado和Spring配合开发,在Dorado中创建Web工程,通过Dorado提供的Marmot开发Dorado-Spring接口,实现Dorado开发的Web

页面与Spring后台程序之间的通讯,完成用户界面展示、业务逻辑处理以及数据访问控制。

Dorado与Spring工程的集成详见 Dorado Marmot使用简介。

Spring调用JAVA

EE(提供业务逻辑与数据持久化服务)应用程序,可以将其他应用程序作为Dao层,在Spring中需要编写op层的Peer对象,BO层的Service,Dorado中提供数据操作的表示层对象的数据容器:Marmot与Peer对象和数据提供对象绑定,即可实现Dorado+Spring+JAVA

EE结构的web应用。

在代码编写过程中,因为要实现从后台的数据对象(非Spring程序)到Spring中Peer对象的映射,Peer对象到Marmot对象的映射,所以原则上要求构造这些对象时,对象内部的属性要严格一直,否则会出现映射错误。

具体来说实现时需要一下对象:

Spring中:

1.Peer对象

2.Service对象

Dorado中:

1.数据提供者

2.页面展示对象

Dorado中需要手动添加 dorado.properties文件中相关参数的路径:

configFileLoader=com.bstek.dorado.common.fileloader.PathFileLoader

sourceFileLoader=com.bstek.dorado.common.fileloader.PathFileLoader

configFileLoader.root=C:/dorado/wtc2/home

sourceFileLoader.root=C:/dorado/wtc2/src

5.部署Web Application Module

Dorado中自身集成了Tomcat web

Server,因为后台程序引入了JNDI和TuxedoConnection对象,使用了Weglogic.jar包,因此Tomcat无法加载这些J2EE的应用,在Dorado环境中也无法运行Web工程,必须将该Web工程部署到Weblogic下,才能够运行。

部署Web工程到Weblogic有两种方法,一是将Web工程打包生成War文件然后部署,另外一种是直接将web工程的web目录发布,推荐使用第一种。

具体的war打包请查询相关资料,启动Weblogic,将Web工程发布后,就可以通过在Web

Browser地址栏中输入Url运行Web工程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值