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开发相关推荐

  1. wtc java 代码 tpcall(servicename_通过wtc使tuxedo与weblogic通信开发

    fml32_test fml32_test wtc_jolt GROUP 1100 simple 0 AVAIL 进行到这里tuxedo方面所有的工作已经完成,下面进入weblogic方面的工作. 3 ...

  2. wtc java 代码 tpcall(servicename_通过wtc使tuxedo及weblogic通信开发.doc

    标题:通过wtc.jolt进行tuxedo与weblogic通信开发 [评论] 作者:李振嘉(dev2dev ID:lizhenjia) ?(一)摘要 (二)通过wtc进行tuxedo与weblogi ...

  3. wtc java 代码 tpcall(servicename_WebLogic下WTC Service的配置

    如果只是单向的从WLS去call Tuxedo Service,只需要对 Local AccessPoint/Remote AccessPoint/Imported Service进行配置就可以了.如 ...

  4. wtc java 代码 tpcall(servicename_wtc经验心得以及相关代码

    WTC经验心得以及相关代码总结 1WTC简介 weblogic tuxedo conection,顾名思义,weblogic和tuxedo的连接,tuxedo发布服务service,通过配置weblo ...

  5. 都2020年了,你还不会写简洁的Java代码!(转载)

    使用Google Guava依赖 com.google.guava guava 29.0-jre 1 2 3 4 5 创建一个list集合并赋值 最原始的办法: List stringList = n ...

  6. python中如何调用java_在Python程序中调用Java代码的实现

    有头发且有趣的码农万里挑一~ 14 有料叔 | 一位有故事的程序猿 前 言 开发Python程序,需求中需要用到Java码,Python作为"胶水"语言能够很好的实现这种需求.具体 ...

  7. Java代码-CPU占用过高排查思路

    Java代码-CPU占用过高排查思路: 1.top 查看占用cpu过高的进程PID 2.top -Hbp 32048|awk '/java/ && $9>50'  查看进程中占用 ...

  8. java tapestry_Tapestry简介- 转载 (转自java-cn)

    介绍Tapestry的相关中文网址:http://www.netbei.com/Article/jsp/Tapestry/Index.html Tapestry是一个开源的基于servlet的应用程序 ...

  9. 有没有一个在线工具可以将Python代码转换为Java代码?

    Python和Java是软件开发行业中广泛使用的两种编程语言.两者都有自己的优点和缺点,适用于不同类型的项目.Python以其易用性和可读性而闻名,而Java以其健壮性和性能而闻名. Python和J ...

最新文章

  1. [JS][dp]题解 | #打家劫舍(一)#
  2. IDEA加密文件Base64转换String传输以及报文摘要MD5防止恶意篡改
  3. 写代码日常 | 每日趣闻
  4. koa+mysql+vue+socket.io全栈开发之web api篇
  5. html手机端全屏显示和溢出问题
  6. 在SQL Server 2005 Express 中添加报表服务后 (Business Intelligence Development Studio) vs2005 加载程序集问题解决办法...
  7. Sublime3 搭建C/C++环境
  8. libpcap抓取数据包
  9. img标签的onerror事件来显示默认图片
  10. 剑指offer(21):栈的压入、弹出序列
  11. 适用于Java开发人员的Elasticsearch:简介
  12. 推荐系统相关资源搜集
  13. Titlemizer 随机相关的标题生成器插件
  14. java注解 @SuppressWarnings注解用法
  15. G1手机上的VOIP之旅 - SIP Server + SipDroid
  16. 纯js开发android,js开发app_安卓app开发引擎
  17. 编程珠玑第一章习题解答
  18. 7种常用函数图象及4种函数图象变换规则
  19. CAD关于图层隐藏图层操作(com接口c#语言)
  20. layui生产管理系统_分享两款Java Spring框架的开源MES制造执行系统

热门文章

  1. Gmail 中出现紫字的怪现象
  2. 去掉word页眉上横线的技巧
  3. 大厂必考深度学习算法面试题
  4. Java 中的设计模式详细介绍
  5. 艾美捷利妥昔单抗Rituximab参数及应用
  6. Android相机开发: 触摸对焦,触摸测光,二指手势缩放
  7. 龙之谷服务器仓库在哪个位置,全区全服版本更新至Ver.190
  8. Docker Hub的使用以及配置阿里云镜像加速
  9. org.hibernate.QueryException: Unmatched braces for alias path 解决方案
  10. postman tests实例记录