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工程。
wtc java 代码 tpcall(servicename_[转载]Dorado+Spring+Wtc+Tuxedo开发相关推荐
- wtc java 代码 tpcall(servicename_通过wtc使tuxedo与weblogic通信开发
fml32_test fml32_test wtc_jolt GROUP 1100 simple 0 AVAIL 进行到这里tuxedo方面所有的工作已经完成,下面进入weblogic方面的工作. 3 ...
- wtc java 代码 tpcall(servicename_通过wtc使tuxedo及weblogic通信开发.doc
标题:通过wtc.jolt进行tuxedo与weblogic通信开发 [评论] 作者:李振嘉(dev2dev ID:lizhenjia) ?(一)摘要 (二)通过wtc进行tuxedo与weblogi ...
- wtc java 代码 tpcall(servicename_WebLogic下WTC Service的配置
如果只是单向的从WLS去call Tuxedo Service,只需要对 Local AccessPoint/Remote AccessPoint/Imported Service进行配置就可以了.如 ...
- wtc java 代码 tpcall(servicename_wtc经验心得以及相关代码
WTC经验心得以及相关代码总结 1WTC简介 weblogic tuxedo conection,顾名思义,weblogic和tuxedo的连接,tuxedo发布服务service,通过配置weblo ...
- 都2020年了,你还不会写简洁的Java代码!(转载)
使用Google Guava依赖 com.google.guava guava 29.0-jre 1 2 3 4 5 创建一个list集合并赋值 最原始的办法: List stringList = n ...
- python中如何调用java_在Python程序中调用Java代码的实现
有头发且有趣的码农万里挑一~ 14 有料叔 | 一位有故事的程序猿 前 言 开发Python程序,需求中需要用到Java码,Python作为"胶水"语言能够很好的实现这种需求.具体 ...
- Java代码-CPU占用过高排查思路
Java代码-CPU占用过高排查思路: 1.top 查看占用cpu过高的进程PID 2.top -Hbp 32048|awk '/java/ && $9>50' 查看进程中占用 ...
- java tapestry_Tapestry简介- 转载 (转自java-cn)
介绍Tapestry的相关中文网址:http://www.netbei.com/Article/jsp/Tapestry/Index.html Tapestry是一个开源的基于servlet的应用程序 ...
- 有没有一个在线工具可以将Python代码转换为Java代码?
Python和Java是软件开发行业中广泛使用的两种编程语言.两者都有自己的优点和缺点,适用于不同类型的项目.Python以其易用性和可读性而闻名,而Java以其健壮性和性能而闻名. Python和J ...
最新文章
- [JS][dp]题解 | #打家劫舍(一)#
- IDEA加密文件Base64转换String传输以及报文摘要MD5防止恶意篡改
- 写代码日常 | 每日趣闻
- koa+mysql+vue+socket.io全栈开发之web api篇
- html手机端全屏显示和溢出问题
- 在SQL Server 2005 Express 中添加报表服务后 (Business Intelligence Development Studio) vs2005 加载程序集问题解决办法...
- Sublime3 搭建C/C++环境
- libpcap抓取数据包
- img标签的onerror事件来显示默认图片
- 剑指offer(21):栈的压入、弹出序列
- 适用于Java开发人员的Elasticsearch:简介
- 推荐系统相关资源搜集
- Titlemizer 随机相关的标题生成器插件
- java注解 @SuppressWarnings注解用法
- G1手机上的VOIP之旅 - SIP Server + SipDroid
- 纯js开发android,js开发app_安卓app开发引擎
- 编程珠玑第一章习题解答
- 7种常用函数图象及4种函数图象变换规则
- CAD关于图层隐藏图层操作(com接口c#语言)
- layui生产管理系统_分享两款Java Spring框架的开源MES制造执行系统
热门文章
- Gmail 中出现紫字的怪现象
- 去掉word页眉上横线的技巧
- 大厂必考深度学习算法面试题
- Java 中的设计模式详细介绍
- 艾美捷利妥昔单抗Rituximab参数及应用
- Android相机开发: 触摸对焦,触摸测光,二指手势缩放
- 龙之谷服务器仓库在哪个位置,全区全服版本更新至Ver.190
- Docker Hub的使用以及配置阿里云镜像加速
- org.hibernate.QueryException: Unmatched braces for alias path 解决方案
- postman tests实例记录