如何在工程中使用axis2部署webservice

♀尐吖头ヾ 提交于 2019-11-25 18:44:11

有一个最简单的方法就是把axis2.war中的内容作为Web Project的基础, 来进行开发.

不过为了更清楚的了解如何在一个已有的Web Project中嵌入axis2, 那就手动来配置。大致分如下几个步骤:

一、新建Web Project,名为“WebServiceDemo”

二、下载axis2-1.5-war.zip包,解压缩

将axis2/WEB-INF/lib 里的jar包拷贝到 WebServiceDemo/WebRoot/WEB-INF/lib/

将axis2.war/axis2-web拷贝至WebServiceDemo/ WebRoot/axis2-web/

axis2需要的JAR包:

三、配置axis2 servlet

打开WebServiceDemo/WebRoot/WEB-INF/web.xml,增加如下配置:

<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> 

四、写一个简单的web服务类

package service;          public class MyService {                     public String sayHello(String name) {                        return name + "says /"Hello!/"";                 }          }   

五、配置Web Service.

由于axis2已嵌入到WebServiceDemo项目中,所以web service就不用打包成aar,而是直接在/WEB-INF目录下创建相应的文件夹和services.xml,目录结构如下图:

六、services.xml

<?xml version="1.0" encoding="UTF-8"?>   <service name="fmService" targetNamespace="http://webservice.sinohuarui.com"> 	<schema schemaNamespace="http://webservice.sinohuarui.com/xsd/" /> 	<description> 		my web service 	</description> 	<parameter name="ServiceClass">service.MyService</parameter>   	<operation name="sayHello">            		<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />       	</operation> </service> 

如果一个类具有多个webservice方法的时候,使用serviceGroup进行配置:

<?xml version="1.0" encoding="UTF-8"?>   <serviceGroup>          <service name="myService">                 <description>Web Service例子</description>                 <parameter name="ServiceClass">service.MyService</parameter>                 <messageReceivers>                        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />                        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />                 </messageReceivers>          </service>   </serviceGroup>  

七、在浏览器中访问http://localhost:8080/WebServiceDemo/services/listServices

可以看到myService服务,说明服务已部署成功

       输入http://localhost:8080/WebServiceDemo/services/myService?wsdl

       可以查看到该Web服务的描述文件

 

其实,axis2-web下面的东西可以不要那么多,我就只保留了index.jsp,httpbase.jsp和listServices.jsp这三个文件,这样集成后的工程就瘦身了

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!