资源描述:
《java通过jolt调用tuxedo服务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java通过Jolt调用Tuxedo服务Java通过Jolt调用Tuxedo服务------------------------一、简介------------------------外部应用访问Tuxedo服务是很经常的事,一般有两种方法WTC和Jolt,网上很多关于Jolt调用Tuxedo服务文章,描述的太多笼统,其实通过Jolt并不是很复杂的事情,这里使用Eclipse3.1+Jolt+WebLogic8.1+Tuxedo9.0环境描述调用服务的全过程。Jolt是BeaTuxedo自带的jar组件,在Tuxe
2、do9.0的安装过程中可以看到安装的Jolt组件。调用服务理论步骤是这样的:1.先准备Tuxedo服务端代码2.在Tuxedo中配置Jolt相关文件3.启动Tuxedo服务4.配置WebLogic服务与TuxedoJolt相关的参数5.配置Eclipse3.1启动WebLogic服务6.编写EclipseServlet代码,运行调用服务。本例使用了《WindowsTuxedo的安装配置-数据库补充》一文中的Tuxedo数据服务文件,所以在启动Tuxedo服务前,必须先启动数据库实例,因为在tpsvinit()里面就
3、配置了数据连接。关于Tuxedo配置要点需参阅《Tuxedo的安装配置-...》的四篇文章。------------------------二、Tuxedo服务文件全代码------------------------这里把server.pc服务文件代码再次列出。其中包括三个服务DBREAD(读数据库)和TOUPPER(转换大写)。本例不使用TOUPPER,所以不用理会那段代码。其中liwei/liwei@windb连接的表tuxedo_test,结构如下:CREATETABLETUXEDO_TEST(IDNUMB
4、ER(2),NAMEVARCHAR2(10))IDNAME------------------------1aaaaaaa2bbbbbbb#include#include#include/*TUXEDOHeaderFile*/#include/*TUXEDOHeaderFile*/EXECSQLBEGINDECLARESECTION;VARCHARora_no[2];intora_id;VARCHARora_value[10];VARCHAR
5、ora_cn[30];EXECSQLENDDECLARESECTION;EXECSQLINCLUDEsqlca;tpsvrinit(){strcpy(ora_cn.arr,"liwei/liwei@windb");ora_cn.len=strlen(ora_cn.arr);ora_cn.arr[ora_cn.len]=' ';//EXECSQLWHENEVERSQLERRORGOTOcnError;EXECSQLCONNECT:ora_cn;return(0);}tpsrvdone(){EXECSQLCOMMIT
6、WORKRELEASE;}DBREAD(TPSVCINFO*rqst){strcpy(ora_no.arr,(char*)rqst->data);ora_no.len=strlen(ora_no.arr);ora_no.arr[ora_no.len]=' ';userlog("ERRSRV:%s",ora_no.arr);EXECSQLselectnameinto:ora_valuefromtuxedo_testwhereid=:ora_no;if(sqlca.sqlcode!=0){userlog("ERRSR
7、V:selectnamefromtuxedo_testwhereid=,sqlcode=%ld,sqlerr=",sqlca.sqlcode);strcpy(rqst->data,sqlca.sqlerrm.sqlerrmc);tpreturn(TPFAIL,0,rqst->data,0L,0);}/*Returnthetransformedbuffertotherequestor.*/strset(rqst->data,"");strcpy(rqst->data,ora_value.arr);tpreturn
8、(TPSUCCESS,0,rqst->data,0L,0);}TOUPPER(TPSVCINFO*rqst){inti;for(i=0;ilen-1;i++)rqst->data[i]=toupper(rqst->data[i]);/*Returnthetransformedbuffertotherequestor.*/tpreturn(TPS