站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题J2EE Web服务客户端质量报告(二)

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

摘要: 在Sun ONE Studio中,Web模块的创建只要选择一组EJB Java方法即可,并且Web服务软件包的类可由Web模块创建
<table width="570" border="0" cellspacing="0" cellpadding="5" bgcolor="FBE392"> <tr> <td> <table width="570" border="0" cellspacing="0" cellpadding="5"> <tr> <td bgcolor="E1B004" width="200" align="center">天极IT资讯短信服务 电脑小技巧
<table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="fffcc0"> function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } <form name=dn action="http://www.my5757.com/tj/join.jsp" target=_blank onSubmit="return check4()"> <tr valign=middle> <td>资费:包月5元
手机: <input type=text name=mobile size=11 style="border:1px solid #000000;height=16px"> <input type=image src="http://www.my5757.com/yesky/images/d34.gif" border="0" width="45" height="18" align="middle" name="image2" > </td> </tr> <input type=hidden name=stype value="yjq"> </form> </table> </td> <td width="370" bgcolor="FBC403">介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。 </td> </tr> </table> </td> </tr> </table>
  服务器Web 服务软件包

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

<iframe width="360" height="300" align="right"scrolling="No" frameborder="0" marginheight="0" marginwidth="0" SRC="http://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html"></iframe>   该软件包包含许多类和接口。这里最关键的一个就是<ServiceName>ServantInterf ace_Tie 类,在这个类中服务名就是<ServiceName> 。类Tie是Web服务模块最上面的堆栈;它将引入的服务调用绑定到创建它的EJB组件上。我们只需修改类Tie就可以添加次数纪录。

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

<table width="100%" bgColor=#ffffff> <tr> <td>/*
* 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_ResponseS truct_SOAPSerializer);
state.getResponse().setBody(bodyBlock);
}
</td></tr></table>
  我们添加了一个单行到invoke_SubmitWork()上:

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

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


zmbbs=1;



↑返回目录
前一篇: 数组在Java编程中的应用
后一篇: 在Java中如何实现长时间任务