本文共 7250 字,大约阅读时间需要 24 分钟。
代码: /**初始化连接池**/ Context initctx = new InitialContext(); ConnectionFactory connectionFactory = (ConnectionFactory) initctx.lookup("jca/xmlink"); /**建立连接**/ Connection conn = connectionFactory.getConnection(); /**建立一个和tuxedo服务交互的实例**/ Interaction interaction = conn.createInteraction(); /**建立一个交互实例的配置属性对象**/ TuxInteractionSpec tux1 = new TuxInteractionSpec(); /**设置调用的tuxedo服务名**/ tux1.setFunctionName("GETDETAIL"); /**设置调用方式:1-同步/0-异步**/ tux1.setInteractionVerb(1); /**设置超时时间-毫秒**/ tux1.setExecutionTimeout(300); /**定义记录工厂--缓冲区**/ RecordFactoryImpl rdf = (RecordFactoryImpl) connectionFactory.getRecordFactory(); /**定义输入、输出参数**/ /**定义传输类型为FML32类型**/ FML32Record rc = (FML32Record) rdf.createMappedRecord("FML32"); /**往缓冲区压入业务输入参数*/ rc.addIn("COUNT",count); rc.addIn("SATIME",satime); /**获取输出结果*/ System.out.println("step 1......"); FML32Record ret = (FML32Record) interaction.execute(tux1, rc); System.out.println("step 2......"); /**中文字符集转换*/ ret.setEncoding("GB2312"); ret.processOutput(0); System.out.println("返回参数个数为:" + ret.size()); System.out.println("用户姓名:" + ret.getField("USRNAME").get(0)); System.out.println("用户卡号:" + ret.getField("COUNT").get(0)); System.out.println("用户存款记录:"); /*取得用户所有存款记录*/ Iterator it = ret.getField("SAID").listIterator(); Iterator it1 = ret.getField("SAADDR").listIterator(); Iterator it2 = ret.getField("SATIME").listIterator(); List all=new ArrayList(); while(it.hasNext()) { Sale use=new Sale(); use.setSaid((String)(it.next())); use.setSaaddr((String)(it1.next())); use.setSatime((String)(it2.next())); all.add(use); } interaction.close(); conn.close(); |
代码: /**指定调用的Tuxedo服务名:GETDETAIL*/TranInDataBean ccx = new TranInDataBean("GETDETAIL");/**压入输入参数:COUNT,1*/ ccx.setField("COUNT", "1"); /**压入输入参数:SATIME,2001/03/19*/ ccx.setField("SATIME", "2001/03/19"); /*调用Tuxedo服务,得到服务结果*/TranOutDataBean ut = dd.callSyncService(ccx);/*从服务结果读取所需数据*/List flds=out.getFields(); for (int i = 0; i < flds.size(); i++) { CommonField cf=(CommonField)flds.get(i); String fldName = cf.getFldName(); String fldValue =cf.getFldValue(); System.out.println( "fldName:" + fldName + "\t" + "fldValue:" + fldValue);} |
我们定义的配置文件callprops.properties格式如下:
代码: #calltype:0表示容器环境,无须配置其他属性;1表示非容器环境,需要配置其他属性calltype=1#calltype=0时需要配置的其他属性如下:namecontxtfac=com.ibm.websphere.naming.WsnInitialContextFactorycontxturl=iiop://localhost:2809xmlinkjndi=jca/xmlink#calltype=1时需要配置的其他属性如下:WSNADDR=//192.168.102.1:7898TUXCONFIG=D:\\simpappFML\\tuxconfigFLDTBLDIR=FLDTBLDIR32=D:\\simpappFMLFIELDTBLS=FIELDTBLS32=user.fld |
代码: OBJLISTDocument d = OBJLISTDocument.Factory.newInstance(); OBJLISTDocument.OBJLIST bj = od.addNewOBJLIST(); /*设定Tuxedo服务名*/ obj.setService("GETDETAIL"); /*增加新的COUNT字段值*/Fldtype ft = obj.addNewCOUNT(); ft.setStringValue("2"); /*增加新的SATIME字段值*/ft = obj.addNewSATIME(); ft.setStringValue("2001/03/19"); /*将用户可以识别的DataBean转化为Tuxedo可以识别的Bean*/ TranInDataBean ccx = AutoFormat.xmlTransIn(od); /*调用Tuxedo服务*/ String input = ccx.getDocumentString(); String utput = CallTuxService.getXmlinkService(input);/*从Tuxedo服务结果抽取自己所需的数据,这里是USRNAME*/ Document doc = AutoFormat.xmlTransOut(output); XmlOptions xo = new XmlOptions(); Map ns = new HashMap(); ns.put("", "http://xmlbeans.lan.org/myuser"); xo.setLoadSubstituteNamespaces(ns); OBJLISTDocument obj1 = OBJLISTDocument.Factory.parse(doc, xo); System.out.println(obj1.getOBJLIST().getUSRNAME().getStringValue()); |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-374505/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14789789/viewspace-374505/