1. 程式人生 > >webservices系列(五)——javaweb整合Axis2及多service配置

webservices系列(五)——javaweb整合Axis2及多service配置

1.新建一個專案動態web專案webservice_test3

2.開啟<Tomcat安裝目錄>webapps/axis2/WEB-INF,將libconfmodules三個資料夾複製,並貼上到webservice_test3專案下的WEB-INF資料夾下。

3.新建service配置檔案,在webservice_test3專案下的WEB-INF資料夾建立services資料夾,在其下新建myservice資料夾(名字可隨意),再myservice資料夾下新建META-INF資料夾,再在新建的META-INF資料夾下建立services.xml

4.寫service方法,在

src下新建com.lc.service包,並在其下新建NumService.java類。程式碼如下:

/**
 * @author luocheng
 * 測試webservice實現類
 */
public class NumService {	
	public Integer getSum(Integer num1, Integer num2) {
		return num1 + num2;
	}
}
5.配置service,開啟第3步新建的services.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>
web.xml配置檔案下加入如下程式碼:
<?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>
6.釋出專案,訪問http://localhost:8080/webservice_test3/service/AxisService?wsdl

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