Axis 之 Dynamic Proxy方式(WSDD方式) (转)
来源:互联网 发布:销售数据统计分析表 编辑:程序博客网 时间:2024/06/06 01:35
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方式
- 使用Axis的wsdd描述方式发布Web服务
- 什么是web,axis,wsdd,soap等等(转)
- wsdd方式发布web service
- wsdd方式发布web service
- 用wsdd(Web Services Deployment Descriptor)方式发布WebService
- 用wsdd(Web Services Deployment Descriptor)方式发布WebService
- axis的部署方式
- axis方式调用webservice
- axis 发布webservice(web.xml,server-config.wsdd)
- 二、用wsdd(Web Services Deployment Descriptor)方式发布WebService
- 二、axis1用wsdd(Web Services Deployment Descriptor)方式发布WebService
- Axis soap server-config.wsdd
- Axis WSDD文件参考文档
- apache axis配置文件 wsdd详解
- Apache Axis配置文件WSDD详解
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- svn在xp服务器端配置
- mongodb主从复制部分源码分析基础
- ArcEngine中实现Symbol的预览
- Android-- FragmentStatePagerAdapter分页
- Eclipse中SVN插件中英文互相转换方法
- Axis 之 Dynamic Proxy方式(WSDD方式) (转)
- java annotation
- 自绘菜单项
- Javascript中return false 的用法
- Qt中光标的形状
- [Hadoop源码解读](一)MapReduce篇之InputFormat
- 70 行 Python 代码编写一个递归下降解析器
- android EditText文本监听 (addTextChangedListener)
- OS X Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程