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

服务器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>方法作了同样的修改。

时间: 2024-08-02 09:17:28

J2EE Web服务客户端质量报告(二)的相关文章

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

概要 本文实现了记录J2EE(Java2平台企业版)Web服务的客户端响应次数的一个通用的结构.记录的响应次数是真实的客户端响应次数,所以它们实际上反映了用户对服务质量的看法.实验的样品是使用Sun ONE (开放式网络环境)应用服务器和IDE建立起来的,但是这个方法很普通,很容易推广到其它J2EE实现上. Web服务正迅速的成为实现客户端-服务器系统的首选结构.它的优点是:企业可以正式的定义一组服务,然后生成通讯用的完整的客户端和服务器的代码库,从而简化新的客户端对合法的Web资源的访问. 但

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

客户端服务软件包 通过指引WSDL编译器到应用服务器提供的WSDL上可自动生成客户端服务软件包.这个软件包包含许多类.我们需要修改的唯一类就是客户端Stub类.同样地,服务器Web 服务软件包也包含类Tie,它可将Web服务请求绑定到EJB方法上,客户端Stub类为每个服务商业方法的每个客户端配备一个方法. 服务Stub类的名称为 <ServiceName>ServantInterface_Stub,其中<ServiceName>就是服务名.我们看看类XactServiceServ

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

Payload软件包 Payload软件包可用于客户端,也可用于服务器.它包含三个类:ClientReport.CurrentReport.和 Serializer. ClientReport 表示一个客户端次数报告: package Payload; import java.io.*; import java.util.*; /** * * @author Brian Connolly Brian@ideajungle.com */ public class ClientReport impl

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

建立样品客户端应用 要建立样品客户端应用,请将下列文件系统添加到IDE中:<download directory>/Metrics/TransactionClient. 该文件系统包含一个应用类和一个Xact 软件包.应用类可模仿客户端事务的执行,Xact 软件包包含客户端Web服务处理器. Xact软件包可使用Sun Web服务开发者工具包来创建,这个工具包包括在Sun ONE应用框架内.批文件gen.bat使用wscompile命令创建Xact软件包.如果你想重建该软件包的话, 你只需调整

使用Macromedia Flex开发Web服务客户端

引言 开放式标准被企业用作降低高整合及维护费用的主要手段.现实中的各种异构软件系统使 得我们必须使用一些涉及开放式标准的策略,而 Web 服务很快就成为了解决这个难题的方法 的一个重要部分.直到现在,要构造一个界面友好的 GUI 客户端来与这些系统进行交互还是 非常的单调乏味.这个问题的一个部分就是 Web 服务描述语言(Web Services Description Language ,WSDL)正趋向于成为服务端点的唯一描述语言,这有时使得遵守起来变得非常困 难,尤其是对组织中的设计人员和

webservice-无法通过JAXWS:wsimport实现程序创建Web服务客户端

问题描述 无法通过JAXWS:wsimport实现程序创建Web服务客户端 无法通过JAXWS:wsimport实现程序创建Web服务客户端,错误截图如下

ASP.NET+XML Web服务客户端创建Web服务

asp.net|web|web服务|xml|创建|客户端 XML Web服务是一个提供特别的功能元素的可编程实体,比如应用程序逻辑,并且可以使用普遍存在的Internet标准例如XML和HTTP访问许多潜在的完全不同的系统.XML Web服务依赖于对XML和其他因特网标准的广泛接受,使用它们来创建支持应用程序互操作性的基础结构,解决了许多过去阻碍互操作性的问题. XML Web服务可在单个应用程序中使用,也可国际互联网被许多应用程序使用.因为一个XML Web服务可通过一个标准接口访问,所以它允

怎样在J2EE组件中引用和查找Web服务

j2ee|web|web服务 本文将讨论怎么在J2EE组件中引用Web服务.并且通过JNDI来查找Web服务.在内容组织上,首先把一个EJB2.1无状态会话Bean发布成Web服务,然后开发基于JSP的Web服务客户端,最后着重介绍怎么在JSP的部署时引用Web服务,并且讨论怎么通过JNDI来查找和调用Web服务.阅读本文前您需要以下的知识和工具:J2EE1.4 SDK,并且会初步使用:掌握基本的JAX-RPC Web服务开发技能:了解JNDI的基本知识,能够使用它进行简单编程:一般的Java编

J2EE 1.4平台和Web服务

本文是J2EE Web服务开发系列文章的第七篇,在本系列文章的前面各主题中,着重介绍了在J2EE1.3平台下使用各种技术或者工具进行Web服务开发.从本文开始,将介绍J2EE1.4平台下的Web服务开发. 本文首先介绍了J2EE1.4平台中Web服务的构架,然后分别介绍了J2EE1.4平台中Web服务的最新规范和最新技术,接下来介绍了开发Web服务使用的API以及J2EE Web服务开发步骤,最后介绍了Web服务的开发工具. J2EE1.4 Web服务构架 J2EE1.4的主题是Web服务,在J