9512.net
甜梦文库
当前位置:首页 >> IT/计算机 >>

Tuxedo和WebLogic互调技术手册



北京南天软件有限公司

Tuxedo 和 WebLogic 互调解决方案

前言
BEA 公司的 Tuxedo 和 WebLogic 作为最优秀的中间件产品,在保险,金融, 银行,电信等行业广泛使用。如今随着需求的不断变化,企业信息集成已经逐渐 成为主流,为此出现了 SOA 技术实现 Service 和 Service 之间的通信。但是我们 这里不介绍 SOA, 我们这里主要介绍 的 是 BEA 公司的连接 器产品 WTC (WebLogic Tuxedo Connector) ,通过它来实现 Tuxedo 和 WebLogic 的互调。

WTC 概述
WTC(WebLogic Tuxedo Connector)是一个兼容 JCA(J2EE 连接器架构) 的软件产品, 它提供了 Tuxedo 服务和 WebLogic Server 部署的应用程序之间的互 操作性。WebLogic Server 组件能够使用 WTC 与 Tuxedo 服务进行通信,Tuxedo 服务也能够调用基于 WebLogic Server 的 EJB 组件。

WebLogic 服务调用 Tuxedo 服务
Tuxedo 实现系统的核心业务,然后用 WebLogic 作为系统扩展到 INTERNET 平 台,由 WebLogic 调用 Tuxedo 上的服务。那么具体怎么做呢?

环境配置
需要在调用 Tuxedo 服务端安装 WebLogic Server (具体安装不介绍了) 然后 , 点击开始- 程序 WebLogic Plateform 8.1 Configuration Wizard 配置服务器的 Domain。 然后启动服务。 打开浏览器, 在地址栏中输入 http://localhost:7001/console 进行 WTC 的配置。 1. 创建 WTC 服务

北京南天软件有限公司

点击控制台中的 WebLogic Tuxedo Connector,进入 WTC 服务页面,点击配 置新的 WTC 服务,输入名称如 mywtcapp 然后点击创建。

2. 创建本地访问点

选中刚刚第一步创建的 WTC 服务,单击该服务页的内容选项卡,然后单击 本地 AP 选项卡,然后点击配置新的本地 Tuxedo 访问点,在新的页面中输入访 问 点 , 如 : localaccessapp ; 访 问 点 ID , 如 : A000000 ; 网 络 地 址 , 如 : //10.222.19.101:9000 其中访问点是用户自己定义的合法的名称,访问点 ID 和网络地址必须和 bdmconfig 配置文件中的 DM_TDOMAIN 相同。 我的 DM_TDOMAIN 是这样的: *DM_TDOMAIN C090121 NWADDR="//10.222.1.218:9011"(Tuxedo 端网络地址) A000000 NWADDR="//10.222.19.101:9000"(WebLogic 端网络地址) 如果 Tuxedo 使用的是 6.5 版本的话,那么要在连接选项中把互操作设置成 Yes,安全性制成默认的就可以了。具体见图1所示:

图1

3. 创建远程访问点

回到刚刚的内容选项卡,点击远程 AP,在新显示的页面中点击配置新的远

北京南天软件有限公司

程 Tuxedo 访问点,在远程 Tuxedo 访问点中输入访问点:remoteaccessapp;访问 点 ID:C090121;本地访问点:localaccessapp;网络地址://10.222.1.218:9011。 其中访问点是用户自定义的合法的名称, 访问点 ID 网络地址必须是和 bdmconfig 配置文件中的 DM_TDOMAIN 相同,本地访问点就是我们刚刚创建的本地访问 点的名称。点击右下角的应用按钮即可。具体见图2所示:

图2 4. 导入 Tuxedo 服务

回到内容选项卡,点击导入服务,在新的页面中点击配置新的导入服务,在 导入服务页面中输入资源名:C000009;本地访问点:localaccessapp;远程访问 点列表:remoteaccessapp;远程名称:C0901210000000。其中资源名和远程名称 必须和 bdmconfig 中的 *DM_LOCAL_SERVICES C000009 LDOM=C090121 RNAME=C0901210000000 一致。本地访问点和远程

访问点必须是刚刚创建的本地访问点名称和远程访问点名称。最后点击应用即 可。具体见图4所示:

北京南天软件有限公司

图4

5. 目标和部署

回到内容选项卡, 点击同级的目标和部署, 选择服务器名称, 然后点击应用, 见图5所示:

图5

具体实现
我在这里只是简单介绍一下如何在 WebLogic 中使用 Java 语言进行调用的, 具体请看源代码 WtcpageController 类。这里主要分几个步骤: 1.初始化环境上下文

北京南天软件有限公司

Context ctx = env.getInitialContext(); 2.建立和 Tuxedo 服务的连接 TuxedoConnectionFactory tcf = (TuxedoConnectionFactory)ctx.lookup( "tuxedo.services.TuxedoConnection"); TuxedoConnection tuxedoConn = tcf.getTuxedoConnection(); 3.调用 Tuxedo 上的服务 Reply retn = tuxedoConn.tpcall("C000009", data, 0); 以上是最主要的代码。具体代码在 WtcpageController 类中。

Tuxedo 服务调用 WebLogic Server 上的 EJB

导出 WTC 服务
以前面所配置的服务及本地访问点为例。 以前面所配置的服务及本地访问点为例。 到内容选项卡,点击导出服务,在新的页面中点击配置新的导出服务,在导 出服务中输入资源名:A0000000000000;本地访问点:localaccessapp;EJB 名 称: tuxedo.services.XXXHome ; 远 程 名 称 是 可 选 ( 如 果 在 bdmconfig 的 DM_REMOTE_SERVICES 中有 RNAME 那么必须与这个 RNAME 一致, 如果没 有的话那么建议填写 A0000000000000 或者不输入) 。其中资源名和必须和 bdmconfig 中的 *DM_REMOTE_SERVICES A0000000000000 LDOM=C090121 RDOM=A000000 一致。本地访问点就是刚刚 创建的本地访问点名称;EJB 名称必须和 weblogic-ejb-jar.xml 中的 jndi-name 的 节点的值一致。然后点击应用即可。

北京南天软件有限公司

EJB 部署
在 WebLogic Server 上建立无状态 EJB,这里必须注意一点的是在 ejb-jar.xml 的文件中的蓝字的部分 <ejb-jar> <enterprise-beans> <session> <ejb-name>Tolower</ejb-name> <home>weblogic.wtc.jatmi.TuxedoServiceHome</home> <remote>weblogic.wtc.jatmi.TuxedoService</remote> <ejb-class>examples.wtc.atmi.simpserv.TolowerBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>Tolower</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Supports</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> 这 里 的 无 状 态 EJB 必 须 实 现 weblogic.wtc.jatmi.TuxedoServiceHome 和 weblogic.wtc.jatmi.TuxedoService 两个接口。接下来把他利用 ant 工具进行编译, 编译好了以后要在 Console 里面进行 EJB 的部署。 下面简单介绍一下如何进行部 署。 首先在浏览器中输入 http://localhost:7001/console 进入控制台, 点击域配置的

北京南天软件有限公司

EJB 模块进入 EJB 部署页面,点击部署新的 EJB 模块超连接进入部署 EJB 模块 页面,在此页面中选择你的 EJB 所在的位子然后点击右下角目标模块按钮,再 在新的页面中点击右下角部署按钮,如果没有错误的话那么该 EJB 已经成部署。 现 在 我 们 可 以 使 用 Tuxedo 上 的 tpcall 来调 用 WebLogic 上 的 EJB, 发 现 Tperrorno=8 的错误,追究原因原来在配置的时候我们漏了一步。我们需要把 Tuxedo 的 Domain 用户作为安全用户配置在 WebLogic Server 上。那么具体怎么 配置新的安全用户呢? 我们还是进入控制台,点击应用程序安全设置的领域超连接,进入到领域页 面,再在该页面中 myrealm 进入新的页面,点击点击用户管理选项卡,再点击管 理此安全领域中的用户超连接,在用户页面中点击配置新的用户超连接输入名 称,密码即可。这里有一点必须要注意,因为我们是把 Tuxedo 的 Domain 用户 这里有一点必须要注意, 这里有一点必须要注意 所以这里的名称不是用户自定义的名称, 增加到 WebLogic Server 上,所以这里的名称不是用户自定义的名称,必须和 bdmconfig 中的 中的*DM_TDOMAIN 相同,我这里是 C090121。 相同, 。

EJB 开发实例

北京南天软件有限公司

weblogic 端操作
编写 WTC 的 ejb 服务接口
.1.1.1 工程,目录结构: 新建一个 EJB 工程,目录结构:

.1.1.2

PrePayEJB.java 代码: 代码:

package com.nantian.npbs.ejb; import javax.ejb.CreateException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import weblogic.wtc.jatmi.TPException; import weblogic.wtc.jatmi.TypedString; import weblogic.wtc.jatmi.Reply; import weblogic.wtc.jatmi.TPServiceInformation; public class PrePayEJB implements SessionBean { private static final long serialVersionUID = 1L; static final boolean VERBOSE = true; private SessionContext ctx; public void setSessionContext(SessionContext ctx) { this.ctx = ctx; } public void ejbActivate() { }

北京南天软件有限公司

public void ejbPassivate() { } public void ejbRemove() { } public void ejbCreate() throws CreateException { } public Reply service(TPServiceInformation mydata) throws TPException { TypedString data; String lowered; TypedString return_data; data = (TypedString) mydata.getServiceData(); log("converting " + data); lowered = callBusiness(data.toString()); log("converted " + data); return_data = new TypedString(lowered); mydata.setReplyBuffer(return_data); return (mydata); } private String callBusiness(String reqPkg){ return reqPkg. toLowerCase(); } private void log(String s) { if (VERBOSE) { System.out.println(s); } } }

.1.1.3

ejb-jar.xml 代码
WTC

注 : 这 里 <home> 和 <remote> 标 签 配 置
weblogic.wtc.jatmi.TuxedoServiceHome weblogic.wtc.jatmi.TuxedoService 这两个接口 <?xml version="1.0" encoding="UTF-8"?>

要 求 需 要 配 置 成


<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0"> <display-name> PrePayEjb </display-name> <enterprise-beans> <session> <ejb-name>PrePayEjb</ejb-name>

北京南天软件有限公司

<home>weblogic.wtc.jatmi.TuxedoServiceHome</home> <remote>weblogic.wtc.jatmi.TuxedoService</remote> <ejb-class>com.nantian.npbs.ejb.PrePayEJB</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>PrePayEjb</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Supports</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>

.1.1.4

weblogic-ejb-jar.xml

注:这里<wls:jndi-name>节点配置的名称必须和WTC配置中Export出来的服务EJB节点名 节点名称想同。 称想同, 称想同,即与weblogic的配置文件config.xml中<ejb-name>节点名称想同。
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-ejb-jar xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar. xsd"> <!--weblogic-version:10.3--> <wls:weblogic-enterprise-bean> <wls:ejb-name>PrePayEjb</wls:ejb-name> <wls:stateless-session-descriptor></wls:stateless-session-descriptor> <wls:jndi-name>PrePayJNDI</wls:jndi-name> </wls:weblogic-enterprise-bean> </wls:weblogic-ejb-jar>

北京南天软件有限公司

weblogic 发布 ejb
上是不行的。 注:直接在 eclipse 中右键部署到 weblogic 上是不行的。但是可以把项目打成 ear 包可 里面发布。 以直接在 eclipse 里面发布。
把写好的 ejb 打成 jar 包发布到 weblogic 上。

weblogic 服务配置
weblogic配置文件中 配置文件中config.xml的相关节点 配置文件中 的相关节点 <wtc-export> <name>WTCExportedService-0</name> <resource-name>PREPAY24</resource-name> <local-access-point>PREPAYWIN</local-access-point> <ejb-name>PrePayJNDI</ejb-name> <remote-name>PREPAY24</remote-name> </wtc-export>

域中新建一个用户, 本地连接的域名相同, 注:需要在 weblogic 域中新建一个用户,用户名必须和 tuxedo 本地连接的域名相同,否则 的错误。 会报 tperrno=8 的错误。

tuxedo 端操作

tuxedo 文件 ubbdom 配置
相关节点配置: *DM_REMOTE_SERVICES PREPAY24 RDOM=PREPAYWIN RNAME="PREPAY24"

tuxedo 客户端代码
调用 weblogic 服务接口代码: ret = tpcall("PREPAY24", (char *)sendbuf, 0, (char **)&rcvbuf, &rcvlen, (long)0);



更多相关文章:
tuxedo和weblogic的互连配置说明
Tuxedo和WebLogic互调技术... 5页 2财富值 WebLogic Tuxedo连接器(WT... 11...tuxedo 和 weblogic 的互连配置说明 由于客户要求 tuxedo 的客户端直接 call 到...
Tuxedo8.1与Weblogic之间调用环境配置
Tuxedo8.1 与 Weblogic 之间调用环境配置 使用手册 目录 1. 2. 3. 引言 ....Weblogic WTC 的配置 3.3.1 创建 WTC 服务 “互操作性”并在导航树中选择...
TUXEDO与WEBLOGIC通过WTC进行互连的配置
TUXEDO与WEBLOGIC通过WTC进行互连的配置_IT/计算机_专业资料。TUXEDO与WEBLOGIC通过WTC进行互连的配置TUXEDO 与 WEBLOGIC 通过 WTC 进行互连的配置 BEA 公司的 TUXEDO,...
Tuxedo通过WTC调用weblogic配置
TUXEDO 与 WEBLOGIC 通过 WTC 方式连接 WTC 调用方式:WebLogic Tuxedo Connector 提供 WebLogic Server 应用程序和 Tuxedo 服务之间的互操作性。该连接器允许 WebLogic...
weblogic与tuxedo配置详解
192.168.57.41:9999" *DM_REMOTE_SERVICES TOLOWER RDOM="TDOM2" *DM_LOCAL_SERVICES TOUPPER RNAME="TOUPPER" 红色为 tuxedo 为接入的 weblogic 的 IP ...
配置WebLogic Tuxedo Connector
组件, 它提供 Tuxedo 服务和 WebLogic Server 部署的企业应用程序之间的互操作性...说明了 Tuxedo 服务对于 EIS 的重要性,并说明了 WTC 在 EIS 和基于新技术的...
通过wtc使tuxedo与weblogic通信开发
用集成,为 weblogictuxedo 提供了双向的互操作性,即 tuxedo service 可以调用在 weblogic 上部署的 ejb,在 weblogic 上部署的 ejb 可以调用 tuxedo 的 ...
tuxedo与weblogic通过wtc进行互连的配置
下面通过一个例子介绍 tuxedo 与 weblogic 通过 wtc 进行连接的配置方法。 weblogic 与 tuxedo 的互连有两中方式,通过 jolt 或通过 wtc(weblogic tuxedo connector)...
tuxedo编程实践总结
互调技术手册.doc Tuxedo 和 WebLogic 互调技术手册.doc 系统配置实践和问题解决.doc tuxedo 和 weblogic 系统配置实践和问题解决.doc weblogic.doc 三,tuxedo ubb...
WebLogic Tuxedo连接器(WTC)快速入门
把%WL_HOME%\samples\server\examples\src\examples\wtc\atmi\simpapp\中的 ubbdomain, 和 dom1config Jq75@vip.sina.com WebLogic Tuxedo 连接器快速入门 及%...
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图