文档详情

Java Web Service之客户端实现.doc

发布:2017-12-16约7.78千字共6页下载文档
文本预览下载声明
Java Web Service之客户端实现 Java Web Service的客户端实现有三种 1. 生成的stub 2. 动态代理 3. 动态调用接口 其中生 成stub是最常用的。stub是用JAX-RPC编译器根据WSDL文档生成的,其主要功能是将对endpoint接口的方法调用转化为SOAP 消息,并且负责将返回的SOAP响应转换为方法的返回值,把SOAP fault转化为方法的异常。JAX-RPC编译器产生的stub除了要实现endpoint接口外,还需要实现或继承 javax.xml.rpc.Stub接口或其实现的子类(Axis中是org.apache.axis.client.Stub)。 javax.xml.rpc.Stub接口主要定义了和网络通讯和认证相关的属性的设置和获取的机制。 Java Web Service的客户端实现有三种 1. 生成的stub 2. 动态代理 3. 动态调用接口 其 中生成stub是最常用的。stub是用JAX-RPC编译器根据WSDL文档生成的,其主要功能是将对endpoint接口的方法调用转化为SOAP 消息,并且负责将返回的SOAP响应转换为方法的返回值,把SOAP fault转化为方法的异常。JAX-RPC编译器产生的stub除了要实现endpoint接口外,还需要实现或继承 javax.xml.rpc.Stub接口或其实现的子类(Axis中是org.apache.axis.client.Stub)。 javax.xml.rpc.Stub接口主要定义了和网络通讯和认证相关的属性的设置和获取的机制。其代码如下: package javax.xml.rpc; import java.util.Iterator; public interface Stub { ??? // Standard property: The Web services Internet address. ??? public static String ENDPOINT_ADDRESS_PROPERTY; ??? // Standard property: Password for authentication. ??? public static String PASSWORD_PROPERTY; ??? // Standard property: User name for authentication. ??? public static String USERNAME_PROPERTY; ??? // Standard property: Boolean flag for maintaining an HTTP session. ??? public static String SESSION_MAINTAIN_PROPERTY; ??? // Given a property name, get its value. ??? public Object _getProperty(java.lang.String name); ??? // Get the names of all the properties the stub supports. ??? public Iterator _getPropertyNames(); ??? // Configure a property on the stub. ??? public void _setProperty(java.lang.String name, java.lang.Object value); } JAX -RPC编译器产生还可以产生一个和WSDL中service元素对应的Service接口,该接口组合了多个port,也就是多个Stub。该接口继承 了javax.xml.rpc.Service。在J2EE环境中Service接口通常通过JNDI lookup得到。 在J2EE中使用生成的stub的典型用例如下: 代码: package com.jwsbook.jaxrpc; import javax.servlet.http.*; import javax.servlet.*; import javax.naming.InitialContext; public class BookQuoteServlet_1 extends javax.servlet.http.HttpServlet { ? protected void doGet(HttpServletRequest req, HttpServletResponse resp) ? throws ServletException,java.io.IOExce
显示全部
相似文档