2分钟搭建WebService服务
一、使用Axis1.4搭建WebService服务
第一步:在web.xml文件中添加映射路径和spring监听
<!-- webservices接口 axis 需要引入的 Servlet Start -->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<!-- 接口调用的后续路径设置 -->
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<!-- webservices接口 axis 需要引入的 Servlet End -->
<!-- 新增spring容器配置 Start -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/spring-*.xml
</param-value>
</context-param>
<!-- 新增spring容器配置 End -->
注:
1、spring监控如果不添加,服务发布正常,可以省略
2、文件中的扫描文件路径根据项目具体位置而定
第二步:添加spring-axis.xml配置文件,文件名自定义即可,作用是本地bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="nFisCommonWebServiceImpl"
class="com.gblfy.service.impl.GblfyCommonWebServiceImpl" />
</beans>
注:
1、 id默认是接口实现类的类名小写,也可以小写 自定义
2、 在web.xml配置文件中要配置spring监听
第三步:添加server-config.wsdd配置文件
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin" />
<parameter name="sendXsiTypes" value="true" />
<parameter name="sendMultiRefs" value="true" />
<parameter name="sendXMLDeclaration" value="true" />
<parameter name="axis.sendMinimizedElements" value="true" />
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session" />
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request" />
<parameter name="extension" value=".jwr" />
</handler>
</requestFlow>
</globalConfiguration>
<handler name="Authenticate"
type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
<handler name="LocalResponder"
type="java:org.apache.axis.transport.local.LocalResponder" />
<handler name="URLMapper"
type="java:org.apache.axis.handlers.http.URLMapper" />
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService" />
<parameter name="enableRemoteAdmin" value="false" />
<parameter name="className"
value="org.apache.axis.utils.Admin" />
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion" />
<parameter name="className" value="org.apache.axis.Version" />
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
<handler
type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
</requestFlow>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder" />
</responseFlow>
</transport>
<!—北京接口服务 start-->
<service name="GblfyCommonServiceShell" provider="java:RPC">
<parameter name="allowedMethods" value="*" />
<parameter name="className"
value="com.gblfy.controller.webservice.GblfyCommonServiceShell" />
</service>
<!—北京接口服务 end-->
</deployment>
只修改截图部分即可!
第四步:添加与server-config.wsdd配置文件,相对应对外发布服务外壳类
第五步:添加接口类
第六步:添加接口逻辑实现类
效果图截图:
http://localhost:8080/gblfywebserviceaxis/services/GblfyCommonServiceShell?wsdl
axis1.4客户端调用:
axis通用工具类:
测试案例:
控制台输出:
单元测试截图:
二、使用Axis2搭建WebService服务:
第一步:在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-INF下面新建services文件夹,在services文件夹下面新建conf文件夹,在conf文件夹下面新建META-INF文件夹,在META-INF文件夹下面新建services.xml文件:
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<service name="Testservice"> <!-- 指定服务名,随便定义 -->
<description>测试axis2webservices</description><!-- 服务的作用说明,可写可不写 -->
<!-- 指定要发布的类路径 -->
<parameter name="ServiceClass"> <!-- 自定义 name-->
com.sinosoft.fis.service.TestService <!-- 写的类路径 -->
</parameter>
<!-- 类里面的方法,有其他方法就在写个operation标签 -->
<operation name="test"> <!-- 类里面的方法名 -->
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
第三步:新建与services.xml文件中相应的对外发布服务类。
效果图:
Axis2客户端:
通用工具类:
单元测试截图:
控制台输出:
jar包,从官网http://axis.apache.org/axis2/java/core/download.cgi下载即可
将war包放到tomcat的webapp目录下面,启动tomcat就可以看到Axis2的首页。
项目所用到的jar从第1个压缩包中取,简单直接从lib文件夹里面的jar全部复制到项目中即可