This documentation is for WSO2 Enterprise Integrator version 6.0.0 . View documentation for the latest release in the 6.x.x family and the latest release in the 7.x.x family.

All docs This doc
Skip to end of metadata
Go to start of metadata

Note that WSO2 EI is shipped with the following changes to what is mentioned in this documentation:

  • <PRODUCT_HOME>/repository/samples/ directory that includes all Integration profile samples is changed to <EI_HOME>/samples/service-bus/.
  • <PRODUCT_HOME>/repository/samples/resources/ directory that includes all artifacts related to the Integration profile samples is changed to <EI_HOME>/samples/service-bus/resources/.

Objective: Demonstrate how to initialize and use a SpringBean as a mediator.

In your Synapse configuration file, add the Spring bean as shown below:

<definitions xmlns="http://ws.apache.org/ns/synapse"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd">

    <registry provider="org.apache.synapse.registry.url.SimpleURLRegistry">
        <parameter name="root">file:repository/conf/sample/resources/</parameter>
        <parameter name="cachableDuration">15000</parameter>
    </registry>

    <sequence name="main">
        <!--Setting the Spring Mediator and its Spring Beans xml file location -->
        <!--Note that springtest is the bean id used in springCustomLogger.xml -->
        <spring bean="springtest" key="spring/springCustomLogger.xml"/>
        <send/>
    </sequence>

</definitions>

In the springCustomLogger.xml file, define the Spring bean:

<!DOCTYPE beans PUBLIC  "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

   <bean id="springtest" class="samples.mediators.extensions.SpringCustomLogger" singleton="false">
	   <property name="username"><value>"Synapse User"</value></property>
	   <property name="email"><value>"[email protected]"</value></property>
   </bean>

</beans>

Prerequisites:

  • Enable logging for the samples.mediators package by adding the following line to the <ESB_HOME>/repository/conf/log4j.properties file:
    log4j.category.samples.mediators=INFO
  • Deploy the SimpleStockQuoteService in the sample Axis2 server and start it on port 9000.
  • Start the ESB with sample configuration 470 as follows: wso2ei-samples -sn 470

In this sample, the Spring Bean SpringCustomLogger gets initialized using the springCustomLogger.xml file and then logs the message ID. Invoke the client as follows:

ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/

If you have successfully enabled logging for the samples.mediators package, you will see an output similar to the following on the console:

    2010-09-26 20:46:57,946 [-] [HttpServerWorker-1]  INFO SpringCustomLogger Starting Spring Meditor
    2010-09-26 20:46:57,946 [-] [HttpServerWorker-1]  INFO SpringCustomLogger Bean in Initialized with User:["Synapse User"]
    2010-09-26 20:46:57,946 [-] [HttpServerWorker-1]  INFO SpringCustomLogger E-MAIL:["[email protected]"]
    2010-09-26 20:46:57,946 [-] [HttpServerWorker-1]  INFO SpringCustomLogger Massage Id:  urn:uuid:383FA8B27D7CC549D91285514217720
    2010-09-26 20:46:57,946 [-] [HttpServerWorker-1]  INFO SpringCustomLogger Logged....
  • No labels