Writing a service with Axis2

From Foochal

Jump to: navigation, search

service.xml

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>

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>

Personal tools