axis 2 springと結合してサービスを作成します。

2325 ワード

まずaxis 2とspringに必要なjarパッケージを導入します。ここではこれ以上話しません。
次に作成/WEB-INF/services/module-name/META-INNF/services.xml(module-nameは任意で、カタログ構造はこのように維持する必要があります)。
services.xmlの内容は以下の通りです。

<serviceGroup>
	<!--      -->
	<service name="demoService">
		<parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
		<!--      spring bean -->
		<parameter name="SpringBeanName">demoService</parameter>
		<messageReceivers>
			<!--            -->
			<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
				class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
			<!--           -->
			<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
				class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
		</messageReceivers>
		<!--multiple action -->
		<messageReceiver
			class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> <!--multiple action -->
	</service>
</serviceGroup>
web.xmlの修正は以下の通りです。

<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
	
	<!-- axis2 begin -->
	<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>
	<!-- axis2 end -->
WSDLにアクセスすることでhttp://server-ip-name:port/application-name/services/services-name?wsdlは、生成されたwsdlを得ることができる。