Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Configuring WebLogic server

Configure the required connection factories and queues in WebLogic.  An entry for a JMS queue would look like the following. The configuration files can be found in configuration inside <WEBLOGIC_HOME>/user_projects/domains/<DOMAIN_NAME>/config/jms/jms file. Alternatively you can configure using the weblogic WebLogic web console which can be accessed through http://localhost:7001 with default configurations.

Code Block
languagehtml/xml
  <queue name="wso2MessageQueue">
    <sub-deployment-name>jms</sub-deployment-name>
    <jndi-name>jms/wso2MessageQueue</jndi-name>
  </queue>

Once you start the WebLogic server with the above changes, you'll be able to see the following on STDOUT.

Code Block
<Jun 25, 2013 11:20:02 AM IST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "AdminServer" for domain "wso2" running in Development Mode> 
<Jun 25, 2013 11:20:02 AM IST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING> 
<Jun 25, 2013 11:20:02 AM IST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode> 

You will now need to configure the transport listener, sender, and message store in WSO2 ESB. For details on JMS configuration parameters used in the code segments, see JMS Connection Factory Parameters.

...

Code Block
languagehtml/xml
<messageStore class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore"
		name="wso2MessageStore">   	
   	<parameter name="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</parameter>
   	<parameter name="store.jms.cache.connection">false</parameter>
   	<parameter name="store.jms.password">admin123</parameter>
   	<parameter name="java.naming.provider.url">t3://localhost:7001</parameter>
   	<parameter name="store.jms.ConsumerReceiveTimeOut">300</parameter>
   	<parameter name="store.jms.connection.factory">jms/myConnectionFactory</parameter>
   	<parameter name="store.jms.username">weblogic</parameter>
   	<parameter name="store.jms.JMSSpecVersion">1.1</parameter>
   	<parameter name="store.jms.destination">jms/wso2MessageQueue</parameter>
</messageStore>

...

JMS Producer Proxy Service

Use the following proxy service configuration in ESB to publish messages to the WebLogic queue:

Code Block
languagexml
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="WeblogicJMSSenderProxy"
       transports="http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="Accept-Encoding" scope="transport" action="remove"/>
         <property name="Content-Length" scope="transport" action="remove"/>
         <property name="Content-Type" scope="transport" action="remove"/>
         <property name="User-Agent" scope="transport" action="remove"/>
         <log level="custom">
            <property name="STATUS:"
                      value="------Message send by WeblogicJMSConsumerProxy--------"/>
         </log>
         <property name="OUT_ONLY" value="true"/>
         <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
         <send>
            <endpoint>
               <address uri="jms:/jms/TestJMSQueue1?transport.jms.ConnectionFactoryJNDIName=jms/TestConnectionFactory1&amp;java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory&amp;java.naming.provider.url=t3://localhost:7001&amp;transport.jms.DestinationType=queue"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </target>
   <description/>
</proxy>

JMS Consumer Proxy Service

Use the following proxy service configuration in ESB to read messages from the WebLogic queue:

Code Block
languagexml
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="WeblogicJMSConsumerProxy"
       transports="jms"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <log level="custom">
            <property name="STATUS:"
                      value="------Message consumed by WeblogicJMSConsumerProxy--------"/>
         </log>
         <log level="full"/>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </target>
   <parameter name="transport.jms.Destination">jms/TestJMSQueue1</parameter>
   <description/>
</proxy>