Writing a service with Axis2
From Foochal
[edit]
service.xml
[edit]
Create spring bean, using service lifecycle, and then reference it
<serviceGroup>
<service name="SpringInit" class="SpringInit">
<description>
This web service initializes Spring.
</description>
<parameter name="ServiceClass" >SpringInit</parameter>
<parameter name="ServiceTCCL" >composite</parameter>
<parameter name="load-on-startup" >true</parameter>
<operation name="springInit">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
<service name="WeatherService">
<description>
Weather Spring POJO Axis2 AAR deployment
</description>
<parameter name="ServiceClass" >WeatherSpringService</parameter>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
</parameter>
<parameter name="SpringBeanName" >weatherService</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>
</service>
</serviceGroup>
[edit]
Use externally create spring bean
In the following example, the service object WeatherService is a reference to an externally created spring bean. This is a common use case where you already have an external spring file and you just want to create a service bean by putting it in your spring file and just referencing it from axis.
<serviceGroup>
<service name="WeatherService">
<description>
Weather Spring POJO Axis2 AAR deployment
</description>
<parameter name="ServiceClass" >WeatherSpringService</parameter>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
</parameter>
<parameter name="SpringBeanName" >weatherService</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>
</service>
</serviceGroup>

