webservices系列(五)——javaweb整合Axis2及多service配置
阿新 • • 發佈:2019-01-05
1.新建一個專案動態web專案webservice_test3。
2.開啟<Tomcat安裝目錄>webapps/axis2/WEB-INF,將lib、conf、modules三個資料夾複製,並貼上到webservice_test3專案下的WEB-INF資料夾下。
3.新建service配置檔案,在webservice_test3專案下的WEB-INF資料夾建立services資料夾,在其下新建myservice資料夾(名字可隨意),再myservice資料夾下新建META-INF資料夾,再在新建的META-INF資料夾下建立services.xml。
4.寫service方法,在
/**
* @author luocheng
* 測試webservice實現類
*/
public class NumService {
public Integer getSum(Integer num1, Integer num2) {
return num1 + num2;
}
}
5.配置service,開啟第3步新建的services.xml檔案,程式碼如下:
在web.xml配置檔案下加入如下程式碼:<!-- name是url將訪問的地址 --> <service name="AxisService"> <description>AxisService</description> <parameter name="ServiceClass"> com.lc.service.NumService </parameter> <operation name="sum"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> </service>
6.釋出專案,訪問http://localhost:8080/webservice_test3/service/AxisService?wsdl<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://Java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <servlet> <servlet-name>AxisService2</servlet-name> <servlet-class> org.apache.axis2.transport.http.AxisServlet </servlet-class> <!-- 載入順序,1代表tomcat最先載入該servlet --> <load-on-startup>1</load-on-startup> </servlet> <!-- servlet-mapping配置的是servlet的訪問路徑 servlet-name:要和上面的servle-name相同 url-pattern:是URL訪問該servlet時的路徑字首 --> <servlet-mapping> <servlet-name>AxisService2</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping> </web-app>
多個service類的配置方法
在services.xml中<service>外套上<serviceGroup></serviceGroup>,就可以寫多個service了。
<serviceGroup>
<!--service1配置-->
<service>...</service>
<!--service2配置-->
<service>...</service>
</serviceGroup>
例項配置如下
<!-- 配置service路徑 -->
<serviceGroup>
<!-- name是url將訪問的地址 -->
<service name="AxisService">
<description>AxisService</description>
<parameter name="ServiceClass">
com.lc.service.NumService
</parameter>
<operation name="sum">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
<operation name="dVal">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
<service name="TestService2">
<description>TestService2</description>
<parameter name="ServiceClass">
com.lc.service2.TestService2
</parameter>
<operation name="append">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
</serviceGroup>