赞
踩
很多东西都是成功前,觉得非常难;成功了之后,又觉得没什么,不值得记录下来。其实不是的,你成功了,后面还是有很多的未成功的新人的,所以必须要分享出来。
特别是一些用的人不多的技术。像tuxedo现在用的人不多吧,也就一些银行电信旧系统占多,jolt又是tuxedo里的一个分支而已,用的人就更少了,导致我遇到困难时上百度基本找不到很多有用的信息,硕果仅存的也被现在铺天盖地的云计算、NoSQL所淹没。
先贴一段成功调用的代码,然后再详细说明。
- public void testTamRecvFeeTest() throws Exception {
- JoltSession session;
- JoltSessionAttributes sattr;
- JoltRemoteService passFml;
-
- String userName = null;
- String userPassword = null;
- String appPassword = null;
- String userRole = null;
- String sendStr = new String("TAM_RECV_FEE");
- sattr = new JoltSessionAttributes();
- sattr.setString(JoltSessionAttributes.APPADDRESS,
- "//32.121.80.205:45000");
- sattr.setInt(JoltSessionAttributes.IDLETIMEOUT, 300);
- session = new JoltSession(sattr, userName, userRole, userPassword,
- appPassword);
- passFml = new JoltRemoteService("QAM_CBS1_L1SVC", session);
-
- passFml.setString("X_TRANS_CODE", sendStr);
-
- passFml.setString("ROUTE_EPARCHY_CODE", "0010");
- passFml.setString("TRADE_EPARCHY_CODE", "0010");
- passFml.setString("TRADE_CITY_CODE", "0010");
- passFml.setString("TRADE_DEPART_ID", "Z0010");
- passFml.setString("TRADE_STAFF_ID", "Z999999");
- passFml.setString("SERIAL_NUMBER", "18802027700");
- passFml.setInt("PAYMENT_ID", 100001);
- passFml.setString("TRADE_FEE", "0");
- passFml.setString("CHANNEL_ID", "15000");
-
- passFml.call(null);
- JoltMessage jm = passFml.getOutputs();
- String b = new String(jm.toString().getBytes("iso-8859-1"), "gbk");
- String[] strPar = b.split(":");
- String resultCode = "-1";
- for (int i = 0; i < strPar.length; i++) {
- System.out.println("item:" + strPar[i]);
- if (strPar[i].split("\\[")[0].equals("X_RESULTCODE"))
- resultCode = strPar[i].split("\"")[1];
- }
- passFml.clear();
- session.endSession();
- assertTrue(resultCode.equals("0"));
- }
1、像JoltSession这些类,在Jolt.jar里,需要引入。这个jar,在tuxedo的安装目录可以找到。在weblogic的安装目录应该也可以找到。
C:\bea\tuxedo8.1\udataobj\jolt
2、JoltSessionAttributes.APPADDRESS,这个是你调用的tuxedo地址与端口,必须//开始,用冒号分隔端口。
//32.121.80.208:45000
3、这个端口是在你要调用的tuxedo机器的etc目录下的ubbconfig中,wtc的端口和jolt的端口都在里面,配置的语句分别大概是这样子
WSL SRVGRP=GROUP1 SRVID=112 CLOPT="-A -- -n //32.121.80.200:46000 -m 10 -M 10 -x 10 -c 1024"
JSL SRVGRP=GROUP1 SRVID=112 CLOPT="-A -- -n //32.121.80.200:45000 -m 10 -M 10 -x 10 -c 1024"
4、new JoltSession(sattr, userName, userRole, userPassword,appPassword);这里里面的用户名等等我全部都是空,什么时候可以留空我也没研究,知道的兄弟也请告诉一下
5、new JoltRemoteService("QAM_CBS1_L1SVC", session);QAM_CBS1_L1SVC是tuxedo的serivce,你搭建tuxedo的时候配置的,同时,你还得在tuxedo的jrepository里配置它才行;
6、String b = new String(jm.toString().getBytes("iso-8859-1"), "gbk");返回的我认为应该是iso8859_1的编码,英文是没有问题的,中文就乱码,我转了gbk以后还是有部分的乱码,还没解决这个问题;知道的兄弟也请告诉一下
7、inBuf.getOutputs()返回的格式,我看了似乎只能自己用“:”,“[”等slipt取出;没有分隔好的输入;
补充一下,tuxedo的安装目录里有详细的例子sample,比如Atm.java(明显就是照顾银行系统),不过可惜里面没有提及对中文的支持。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。