axis2 webservice集成到已有的web工程

我之前都是用jdk自带的webservice发布接口,听PB开发人员说jdk发布的webservice PB无法调用,所以研究了下使用axis2发布接口,网上也找了不少资料,好多是要下载axis2的eclipse插件而且集成到eclipse也会碰到问题,还有就是单独部署一个axis2.war在tomcat,再把我们接口部分代码和services.xml复制到axis2.war解压包的特定目录下。这样与我们实际开发情况严重不符,我们一般是想要在我们已有的web项目中发布接口,这样接口中可以使用我们自己web工程的工具类等资源,下面我一步一步把我集成的步骤写明,如有写的有误的地方还请指教!

我使用的myeclipse8.5+jdk1.6+tomcat6开发

1.下载axis2.war 可以去apache官方下载,也可以去http://download.csdn.net/detail/qq445829096/9773633这个地址下载,我上传的为 axis2-1.7.4-war版本,目前为止为最新版本,

2.在myeclipse新建web工程,我这里工程名为Axis2Web ,工程新建后,把axis2-1.7.4-war解压开,找到这4个文件夹


把这4个文件夹复制到我们新建的web工程的WEB-INF目录下


3.接下来就是写我们要发布的服务类了 

我这里在com.bsoft.ws包下面新建了TestWebService.java  并声明了2个public的方法,需要发布的方法声明完后接下来就是配置到services.xml文件了。


4.在我们项目的WEB-INF/services新建任意命名的文件夹,在新建的文件夹下在新建META-INF文件夹,最后在META-INF文件夹下新建services.xml文件.


5.接下来最后一步,把我们的TestWebService.java需要发布的方法配置到我们上一步新建的services.xml中,并配置web.xml


services.xml配置文件代码:

<?xml version="1.0" encoding="UTF-8"?>  
<service name="TestWebService">  
    <description>  
        Web Service例子  
    </description>  
    <parameter name="ServiceClass">  
       com.bsoft.ws.TestWebService
    </parameter>  
    
    
     <operation name="sayHello" >
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="sayHelloWho" >
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
</service>


同时web.xml 需要加上axis2的servlet配置

<servlet>    
    <servlet-name>AxisServlet</servlet-name>    
    <servlet-class>    
        org.apache.axis2.transport.http.AxisServlet    
    </servlet-class>    
    <load-on-startup>1</load-on-startup>    
</servlet>  
 
<servlet-mapping>    
    <servlet-name>AxisServlet</servlet-name>    
    <url-pattern>/services/*</url-pattern>    
</servlet-mapping>  


6.把我们的项目打包进tomcat 启动 浏览器输入地址http://localhost:8080/Axis2Web/services/TestWebService?wsdl  我tomcat端口号为8080 ,出现如下图所示则发布成功


下面我们在浏览器访问我们发布的方法测试

http://localhost:8080/Axis2Web/services/TestWebService/sayHello


http://localhost:8080/Axis2Web/services/TestWebService/sayHelloWho?name=张三

以为第2个方法需要参入参数加上了?name=张三


 axis2集成到我们自己web工程就介绍到这里,希望能帮助到刚学习axis2接口开发的人,有误之处,还请指出。

猜你喜欢

转载自blog.csdn.net/qq445829096/article/details/60866566