快速业务通道

J2EE Web服务客户端质量报告(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

J2EE Web服务客户端质量报告(二)

时间:2010-12-06

服务器Web 服务软件包

服务器Web 服务软件包可自动生成。在Sun ONE Studio中,Web模块的创建只要选择一组EJB Java方法即可,并且Web服务软件包的类可由Web模块创建。

该软件包包含许多类和接口。这里最关键的一个就是<ServiceName>ServantInterface_Tie 类,在这个类中服务名就是<ServiceName> 。类Tie是Web服务模块最上面的堆栈;它将引入的服务调用绑定到创建它的EJB组件上。我们只需修改类Tie就可以添加次数纪录。

Tie包括许多方法,但是我们只需修改与EJB商业方法invoke_<X>关联的那一个方法。在方法invoke_<X>中,<X>表示EJB商业方法的名称。我们添加一个 import Payload.*; 到类 Tie上,并对每个商业方法作了一个小小的修改。让我们看看下面的方法 invoke_SubmitWork() :

/* * This method does the actual method invocation for operation: SubmitWork */ private void invoke_SubmitWork(StreamingHandlerState state) throws Exception { TransactionService.XactServiceGenServer. XactServiceServantInterface_SubmitWork_RequestStruct myXactServiceServantInterface_SubmitWork_RequestStruct = null; Object myXactServiceServantInterface_SubmitWork_RequestStructObj = state.getRequest().getBody().getValue(); /* Line added to generated method: */ Serializer.queueFirstAttachmentText(state.getMessageContext()); if (myXactServiceServantInterface_SubmitWork_RequestStructObj instanceof SOAPDeserializationState) { myXactServiceServantInterface_SubmitWork_RequestStruct = (TransactionService.XactServiceGenServer. XactServiceServantInterface_SubmitWork_RequestStruct) ((SOAPDeserializationState) myXactServiceServantInterface_SubmitWork_RequestStructObj) .getInstance(); } else { myXactServiceServantInterface_SubmitWork_RequestStruct = (TransactionService.XactServiceGenServer. XactServiceServantInterface_SubmitWork_RequestStruct) myXactServiceServantInterface_SubmitWork_RequestStructObj; } java.lang.String result = ((TransactionService.XactServiceGenServer.XactServiceServantInterface) getTarget()).SubmitWork (myXactServiceServantInterface_SubmitWork_RequestStruct.getString_1()); TransactionService.XactServiceGenServer. XactServiceServantInterface_SubmitWork_ResponseStruct myXactServiceServantInterface_SubmitWork_ResponseStruct = new TransactionService.XactServiceGenServer .XactServiceServantInterface_SubmitWork_ResponseStruct(); SOAPHeaderBlockInfo headerInfo; myXactServiceServantInterface_SubmitWork_ResponseStruct.setResult(result); SOAPBlockInfo bodyBlock = new SOAPBlockInfo (ns1_SubmitWork_SubmitWorkResponse_QNAME); bodyBlock.setValue(myXactServiceServantInterface_SubmitWork_ResponseStruct); bodyBlock.setSerializer (myXactServiceServantInterface_SubmitWork_ResponseStruct_SOAPSerializer); state.getResponse().setBody(bodyBlock); }

我们添加了一个单行到invoke_SubmitWork()上:

Serializer.queueFirstAttachmentText(state.getMessageContext());

getMessageContext()返回实现接口javax.xml.rpc.handler.soap.SOAPMessageContext 的对象。该对象提供对当前SOAP信息的访问。我们传递实现接口SOAPMessageContext 的对象到Payload.Serializer中的一个静态方法上。该静态方法从第一个信息附件中获取XML字符串并将它排队等待次数处理器EJB组件的调用。

我们对每个invoke_<X>方法作了同样的修改。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号