Axis 之 Dynamic Proxy方式(WSDD方式) (转)
2013-08-13 17:20
337 查看
http://hi.baidu.com/dreamsun2008/blog/item/f14c9bef1023092f2df53438.html http://www.cnblogs.com/zuiyirenjian/archive/2010/03/15/1686109.html Axis支持三种web service的部署和开发,分别为: 1、Dynamic Invocation Interface ( DII) 2、Dynamic Proxy方式 3、Stubs方式 二、Dynamic Proxy方式(wsdd) 动态代理就是通过wsdd来描述Web服务,而不是直接访问jws,前面说过jws是不支持包的,而且运行也不稳定,有时候可以访问有时候就不可以,所以不推荐此种方法,wsdd和wsdl的区别在于前者只描述Web服务和操作方法以及传输方式,它相对于wsdl要简单的多,更易被人读懂。 1.将myService放入com.service包下,这就是WSDD的好处,它不像DII不能建包 package com.service; public class MyService { public String sayHello(String name){ return "Welcome to you, " + name; } } 在WEB-INF下新建一个server-config.wsdd文件,代码如下: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/> <service name="myService" provider="java:RPC"> <parameter name="className" value="com.service.MyService"/> <parameter name="allowedMethods" value="sayHello"/> <!--*代表所有方法--> </service> <transport name="http"> <requestFlow> <handler type="URLMapper"/> </requestFlow> </transport> </deployment> 这就是WSDD的全部内容,它描述一个Web Service发布 2.测试发布的myService,重启Tomcat,在浏览器输入 http://localhost:8080/AxisTest/servlet/AxisServlet; 3.客户端 package com.client; import java.net.MalformedURLException; import java.rmi.RemoteException; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; public class MyServiceClient { public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException { String endpoint="http://localhost:8080/AxisTest/services/myService"; String name=" 张三"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.addParameter("param1",XMLType.XSD_STRING,ParameterMode.IN); call.setOperationName( "sayHello" ); call.setReturnType( XMLType.XSD_STRING ); String ret = (String) call.invoke( new Object[] { name } ); System.out.println("返回结果:" + ret); } } 注意上述方法和jws方式唯一的不同就在于endpoint的引用方式不同,一个是直接引用jws文件,一个是引用一个wsdd描述的服务。 补充客户端代理方式如下: //方式一 String url = "http://10.4.2.84:81/server.php"; WeatherWebServiceLocator locator = new WeatherWebServiceLocator(); WeatherWebServiceSoap hw = new WeatherWebServiceSoap12Stub(new URL(url), locator); System.out.println(hw.addUser(1, 2)); //方式二 WeatherWebServiceSoapProxy proxy = new WeatherWebServiceSoapProxy(); System.out.println(proxy.addUser(1, 3)); |
相关文章推荐
- 总结axis 服务端 和客户端 Dynamic Proxy方式,WSDD方式
- Axis 之 Dynamic Proxy方式(WSDD方式)
- 二、axis1用wsdd(Web Services Deployment Descriptor)方式发布WebService
- axis1.4 wsdd 方式发布webservice 服务配置文件以及常用的DOS执行语句
- 使用Axis的wsdd描述方式发布Web服务
- 什么是web,axis,wsdd,soap等等(转)
- 创建与调用以axis实现的stub方式webservice服务
- Axis开发Web Service实例(三种方式)
- axis不能生成server-config.wsdd文件------解决方法
- java用axis方式调用webservice接口
- axis web service工程,用ant编译并创建server-config.wsdd和wsdl文件,然后打成war
- Axis,SOAP,WSDL.WSDD.UDDI,Tcp/IP,Web,Clinet.Server
- 在axis中通过wsdd文件发布和卸载webservice
- webservice入门(2)---在axis中通过wsdd文件发布和卸载webservice
- Spring boot 集成Axis1.4 ,使用wsdd文件发布webservice
- Axis部署开发webservice (三种方式全)
- Axis2、Axis1 以及其他接口的调用方式
- axis和xfire以及CXF三种方式实现WebServices分别有什么优缺
- axis1.4发布struts-config.wsdd文件