axis2版本:axis2-1.5.4
准备工作:下载axis2-1.5.4-war.zip(生成服务端)、axis2-1.5.4-bin.zip(axis2的jar包),jdk5(及以上版本)、tomcat(端口我设成8086了)
手把手超级详细介绍axis2的webservice服务端的生成与发布。
1. 解压axis2-1.5.4-war.zip得axis2.war,把axis2.war放到tomcat的webapps目录, 启动tomcat就能加载axis2.war并生成新的axis2目录,打开浏览器访问http://localhost:8086/axis2/ 则能显示axis2初始化的页面,点击“Services”超链接到http://localhost:8086/axis2/services/listServices,该页面将显示所有发布到该axis2目录的webservice。
2、上一步骤提到的axis2目录,玩家们一般会改成具有业务特色的名字,这里示例就改成pp吧(先关闭tomcat),开tomcat,访问的url就要改为http://localhost:8086/pp/。
3、点击“ Services”超链接到http://localhost:8086/pp/services/listServices,初始发布默认有1个叫“Version”的webservice。完事后记得删掉axis2.war。
4、接下来添加自己写的webservice。开发工具用myeclipse或者eclipse,新建java project, 这里示例工程tttt,在tttt里面新建个文件夹,取名lib,放上axis2的jar包(由axis2-1.5.4-bin.zip解压可得,全放上就可以了),再把jar包导入到tttt工程。工程内新建package:com.tttt.server,新建类:com.tttt.server.Hello,编程如图示:
5. 吧工程导出成aar文件,做法:工程tttt右击选择export--- JAR file---把右上角的钩钩去掉---导出文件名随便改,如下图。
6. 新建services.xml。关于这个webservice的配置文档,也是有一定技巧的,总之每个aar对应1个services.xml,具体的标签说明、配置介绍请自行谷哥,万能的配置内容如下:
<!-- webservice配置文件 --> <service name="tttt_Service" ><!-- webservice命名,可自便 --> <description> Please Type your service description here </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass">com.tttt.server.Hello</parameter> </service>
7. 把这个services.xml放到tttt.jar》META-INF目录下(用解压软件打开这个jar包),接着把后缀名jar改成aar,放到D:\Program Files\apache-tomcat-6.0.36\webapps\pp\WEB-INF\services, 重启tomcat。
8. 打开http://localhost:8086/pp/services/listServices可以看到tttt_Service,点击就是它的wsdl(一个符合soap协议的xml,大概这样理解吧),发布成功了。别人就能更加你提供的wsdl(url或者wsdl文档)生成客户端代,实现该实现的业务逻辑,实现不了那就是他的事情鸟。
9. 转载请说明出自Whilejolly:http://blog.csdn.net/seedingly/article/details/25289257
想要弄更加复杂的功能,例如要返回json数据就要向工程另外导入json的jar包,要拼xml数据就要dom4j之类的jar包,这些axis2以外的jar包可放在D:\Program Files\apache-tomcat-6.0.36\webapps\pp\WEB-INF\lib,也就是pp的lib目录。webservice可以返回自定义对象的 ,这样的话客户端编程会稍稍麻烦些,我比较喜欢把对象弄成json或者xml,既统一又好交代(向客户端交代)。
下一篇将介绍客户端的生成与编程。
【webservice】发布axis2的webservice服务端