使用axis2 1.7集成到web项目中发布
下载axis2-1.7.5-war.zip 文件解压到相应的目录,将目录中的axis2.war文件放到Tomcat服务器的webapps目录中(本文使用的Tomcat的版本是7.x),并启动Tomcat。 这时在Tomcat的webapps文件夹中会出现一个 名为 axis2 的文件夹(其实这就是部署好的 axis2工程),下图就是通过tomcat运行的目录结构
另外一种方式就是将axis2-1.7.5-war.zip文件解压到相应的目录,将目录中的axis2.war继续接压
图一
图二
将上图中lib,conf,modules,services,include,views 6个文件夹复制到已有项目的WEB-INF下
在src右键, 在这个包中新建一个我们需要发布的 WebService 服务的类: WebServiceDemo
代码如下:
1. package com.elgin.webservice;
2.
3. public class WebServiceDemo {
4. public String sayHello(String name){
5. return "hello " + name;
6. }
7.
8. public int getAge(){
9. return 26;
10. }
11. }
⑤ 在 AxisWebDemo 工程的 WEB-INF 下新建如下层次结构目录 : services/webservices/META-INF/services.xml ,如下图所示:
经过我的验证,发现:目录层次必须是 services / 任意名称文件夹 / META-INF / services.xml ,否则 WebService发布会失败 ,也就是说上图的层次中 ,只有webservice这个文件夹的名字是可以自由指定,其它的文件、文件夹名字都是固定的!
services.xml 配置文件内容:
1. <?xml version="1.0" encoding="UTF-8"?>
2. <serviceGroup>
3. <!- name属性配置WebService的名称 ->
4. <service name="myService">
5. <description>Web Service</description>
6. <!-- ServiceClass属性配置提供WebService服务类的全类名 -->
7. <parameter name="ServiceClass">com.elgin.webservice.WebServiceDemo</parameter>
8. <messageReceivers>
9. <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
10. <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
11. </messageReceivers>
12. </service>
13. </serviceGroup>
⑥ 在 AxisWebDemo 工程的 web.xml 文件中加入axis2的配置支持:
1. <!-- 加入axis2支持 -->
2. <servlet>
3. <servlet-name>AxisServlet</servlet-name>
4. <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
5. <load-on-startup>1</load-on-startup>
6. </servlet>
7. <servlet-mapping>
8. <servlet-name>AxisServlet</servlet-name>
9. <url-pattern>/services/*</url-pattern>
10. </servlet-mapping>
经过以上6个步骤 , axis2 已经整合到工程中了 ,把项目加入的Tomcat中,启动Tomcat服务器 ,在浏览器中输入以下URL:
http://locoalhost:6080/AxisService/services/myService?wsdl
如果出现下图所示的信息,说明你的 WebService服务发布成功了: