The following instructions describe how to configure WSO2 ESB's JMS transport with Oracle WebLogic 12.2.1.1.
Starting the WebLogic server and the ESB
- Download, set up, and start Oracle WebLogic Server.
- Start WSO2 ESB.
- Wrap the weblogic client jar and build a new OSGi bundle using the following pom.xml. The exporting of
javax.jms
package and javax.xml.namespace
package of the client jar should be prevented. - Copy the client libraries file the
wlthint3client.jar
from the <WEBLOGIC_HOME>/wlserver/server/lib
directory to the <ESB_HOME>/repository/components/dropins
directory.
...
Code Block |
---|
|
<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 |
---|
|
<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&java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory&java.naming.provider.url=t3://localhost:7001&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 |
---|
|
<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> |