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

客户端服务软件包

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

服务Stub类的名称为 <ServiceName>ServantInterface_Stub,其中<ServiceName>就是服务名。我们看看类XactServiceServantInterface_Stub 内的submitWork()方法:

/*
* Implementation of submitWork
*/
public java.lang.String submitWork(java.lang.String string_1)
throws java.rmi.RemoteException {
  try {
   StreamingSenderState _state = _start(_handlerChain);
   InternalSOAPMessage _request = _state.getRequest();
   _request.setOperationCode(SubmitWork_OPCODE);
   Xact.XactServiceServantInterface_SubmitWork_RequestStruct
   _myXactServiceServantInterface_SubmitWork_RequestStruct =new Xact.XactServiceServantInterface_SubmitWork_RequestStruct();
   _myXactServiceServantInterface_SubmitWork_RequestStruct.setString_1(string_1);
   SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_SubmitWork_SubmitWork_QNAME);
   _bodyBlock.setValue(_myXactServiceServantInterface_SubmitWork_RequestStruct);
   _bodyBlock.setSerializer(myXactServiceServantInterface_SubmitWork_RequestStruct_SOAPSerializer);
   _request.setBody(_bodyBlock);
   _state.getMessageContext().setProperty(HttpClientTransport.HTTP_SOAPACTION_PROPERTY, "");
   Serializer.attachPendingReportToMessage(_state.getMessageContext());
   _send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
   Xact.XactServiceServantInterface_SubmitWork_ResponseStruct
   _myXactServiceServantInterface_SubmitWork_ResponseStruct = null;
   Object _responseObj = _state.getResponse().getBody().getValue();
   if (_responseObj instanceof SOAPDeserializationState) {
    _myXactServiceServantInterface_SubmitWork_ResponseStruct =
     (Xact.XactServiceServantInterface_SubmitWork_ResponseStruct)
     ((SOAPDeserializationState)_responseObj).getInstance();
   } else {
    _myXactServiceServantInterface_SubmitWork_ResponseStruct =(Xact.XactServiceServantInterface_SubmitWork_ResponseStruct)responseObj;
}
return _myXactServiceServantInterface_SubmitWork_ResponseStruct
.getResult();
} catch (RemoteException e) {
// Let this one through unchanged
throw e;
} catch (JAXRPCException e) {
throw new RemoteException(e.getMessage(), e);
} catch (Exception e) {
if (e instanceof RuntimeException) {
throw (RuntimeException)e;
} else {
throw new RemoteException(e.getMessage(), e);
}
}
}

在上述的代码中,我们在_send()之前立即添加了下面的单行:

Serializer.attachPendingReportToMessage(_state.getMessageContext());

如果没有待解决的客户端报告需要发送,attachPendingReportToMessage 就返回。否则,它将当前报告连在XML之后并将它当作文本附件添加到SOAP信息中。我们对其他的商业方法也作了同样的修改,在它们的每个_send()调用之前立即添加了上面的代码行。

时间: 2024-11-08 18:01:20

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

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

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

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软件包.如果你想重建该软件包的话, 你只需调整

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

服务器Web 服务软件包 服务器Web 服务软件包可自动生成.在Sun ONE Studio中,Web模块的创建只要选择一组EJB Java方法即可,并且Web服务软件包的类可由Web模块创建. 该软件包包含许多类和接口.这里最关键的一个就是<ServiceName>ServantInterface_Tie 类,在这个类中服务名就是<ServiceName> .类Tie是Web服务模块最上面的堆栈:它将引入的服务调用绑定到创建它的EJB组件上.我们只需修改类Tie就可以添加次数纪录

使用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