1、由于项目要用到axis1.4搭建服务端,而现在都流行axis2,相比是较老的技术了。这几天刚好有时间看看,入门入门。
2、由于通信双方都是基于soap协议,而soap是基于http传输的。所以先研究研究什么是soap协议,在网上找了很多文档,写的有点乱,选了一个写得比较好。
WebService_SOAP
下载地址:http://download.csdn.net/detail/cuker919/5308642
3、看了soap后,再了解了解wsdl语言。在网上找了很多文档,写的有点乱,选了一个写得比较好。
Web_Service描述语言_WSDL_详解.pdf
http://download.csdn.net/detail/cuker919/5308649
4、前面打好基础之后,接下来就是研究研究axis1.4怎么用了,同样的在网上找找高手写的文档。
axis_WebService_-_开发指南.docx
http://download.csdn.net/detail/cuker919/5308603
5、总结上面的学习,搭建axis1.4服务端:
这事我搭建好运行正常的项目:http://download.csdn.net/detail/cuker919/5308625
第一步:由于要生成server-config.wsdd,所以要发布自己搭建的项目到tomcat里面部署,再用命令才能生成。
这里就不能简简单单的搭建java工程了,因为要打包,ant感觉好久不用就忘了,maven好用。
所以就用maven搭建工程,好发布。
第二步:搭建好工程后,按axis_WebService_-_开发指南.docx 里面的(二、用wsdd(Web Services Deployment Descriptor)方式发布WebService);编写相应的java类,然后编写对应的deploy.wsdd,请看项目里面的该文件。
第三步:生成相应的server-config.wsdd。
写完配置后,就需要用axis提供的AdminClient工具类帮我们发布WebService,直到生成server-config.wsdd。-- 用maven打包,然后发布到tomcat/webapp里面,然后在CMD下面输入cd到tomcat/webapp/WEB-INF
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/myaxis1/services/AdminService deploy.wsdd
第四步:在WebBrowser的地址栏输入:
http://localhost:8080/myaxis1/servlet/AxisServlet
你就可以看到如下效果:
And now... Some Services
刚才在deploy.wsdd中指定的WebService就在上面出现了,还有暴露出来的方法。点击wsdl就可以看到刚才一样熟悉的wsdl的xml文档。
第五步:编写复杂类型对象
按上面的第二步到第四步再走一遍,然后生成server-config.wsdd,用对比工具对比发现,与第一次生成的wsdd文件基本一样,就service多发布一个,然后把这段copy到第一次的server-config.wsdd文件里面即可。
<service name="ManagerUser" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
<parameter name="className" value="com.cuker.service.ManagerUser"/>
<beanMapping languageSpecificType="java:com.cuker.entity.User" qname="ns1:User" xmlns:ns1="urn:User"/>
</service>
第六步:根据已经获取的WSDL文件,使用下面的工具可以生成服务端和客户端,还省了编码,
工具下载:http://download.csdn.net/detail/cuker919/5349738
把里面的路径改成自己机子上相对的路径即可。
生成客户端后,直接放在自己的工程里面,直接就可以调用服务端了:如下代码
public class Test {
public static void main(String args[]){
String url = "http://localhost:8080/myaxis1/services/***Service?wsdl";
URL serviceUrl;
try {
serviceUrl = new URL(url);
***ServiceSoapBindingStub binding = (***ServiceSoapBindingStub) new ***SServiceImplServiceLocator().get***Service(serviceUrl);
UserBean user = new UserBean();
user.setAreacode("9999");
user.setCharging("");
user.setPassword("123456");
user.setTeam_id(-1);
user.setUserid("ytest");
user.setUsertype(1);
OrderBean orderbean = new OrderBean();
orderbean.setProductid("001");
OrderBean[] order =new OrderBean[]{orderbean};
ResultBean bean = binding.createUser(user, order, "20130408164312");
System.out.println("返回码:" + bean.getReturnCode()+" 返回消息:"+bean.getReturnMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。