I'm sort of operating half-blind here but it seems like the configuration below, even though is still not working, makes more sense than the previous one. Again, the bold lines are what I added to the original configuration. This timeI'm getting an error: 2014-12-15 13:50:06,488 [-] [HttpClientWorker-1] ERROR JMSSender Unable to create a JMSMessageSender for : org.apache.axis2.transport.jms.JMSOutTransportInfo@283dd358 oracle.jms.AQjmsException: JMS-107: Operation not allowed on Connection at oracle.jms.AQjmsError.throwEx(AQjmsError.java:334) at oracle.jms.AQjmsConnection.createTopicSession(AQjmsConnection.java:728) at org.apache.axis2.transport.jms.JMSOutTransportInfo.createJMSSender(JMSOutTransportInfo.java:365) at org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:121) at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:119) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:159) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:265) at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:84) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:229) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:370) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(
<definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy" transports="https http jms" startOnLoad="true" trace="disable"> <target> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService" /> </endpoint> <inSequence> <log level="full" /> <enrich> <source type="body" clone="true" /> <target type="property" property="jms_body_text" /> </enrich> <property name="jms_body_text" expression="get-property('jms_body_text')" scope="default" /> <xslt key="jmsMsgToSoapMsg_xslt"> <property name="jms_text" expression="get-property('jms_body_text')" /> </xslt> <log level="full"> <property name="After transformation" value="************" /> </log> </inSequence> <outSequence> <log level="full"> <property name="OUT SEQUENCE" value="************" /> </log> <send/> </outSequence> </target> <publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/> <parameter name="transport.jms.ContentType"> <rules> <jmsProperty>ContentType</jmsProperty> <default>text/plain</default> </rules> </parameter> <parameter name="transport.jms.Destination">cn=tro_Q_JMS2,cn=OracleDBQueues,cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us</parameter> <parameter name="transport.jms.ReplyDestination">cn=tro_Q_JMS1,cn=OracleDBQueues,cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us</parameter> </proxy> <localEntry key="jmsMsgToSoapMsg_xslt" src="file:jmsMsgToSoapMsg.xslt" /> <sequence name="fault"> <log level="full"> <property name="MESSAGE" value="Executing default "fault" sequence" /> <property name="ERROR_CODE" expression="get-property('ERROR_CODE')" /> <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')" /> </log> <drop/> </sequence> <sequence name="main"> <log/> <drop/> </sequence> </definitions> On Monday, December 15, 2014 11:26 AM, Tech Bolek <[email protected]> wrote: Thanks. I've set up an LDAP server and configured my queues (I'm using JMS queues though, not XML queues). Usign this link http://wso2.com/library/tutorials/2011/11/configuring-wso2-esb-with-oracle-as-messaging-media/. My synapse configuration does the following:1. Read a message from JMS queue2. Perform XSLT transformation and forward the request to the apache2 axis server to invoke the test stock quote service3. The stock quote response is captured in the log. Now I'd like to capture the response in another JMS queue. I've tried epanding the synapse config file as with the bold lines below but I'm getting an error: 2014-12-15 11:24:59,000 [-] [HttpClientWorker-1] ERROR NativeWorkerPool Uncaught exception java.lang.NullPointerException at org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:135) at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:119) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:159) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:265) at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:84) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:229) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:370) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:160) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) <definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy" transports="https http jms" startOnLoad="true" trace="disable"> <target> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService" /> </endpoint> <inSequence> <log level="full" /> <enrich> <source type="body" clone="true" /> <target type="property" property="jms_body_text" /> </enrich> <property name="jms_body_text" expression="get-property('jms_body_text')" scope="default" /> <xslt key="jmsMsgToSoapMsg_xslt"> <property name="jms_text" expression="get-property('jms_body_text')" /> </xslt> <log level="full"> <property name="After transformation" value="************" /> </log> </inSequence> <outSequence> <log level="full"> <property name="OUT SEQUENCE" value="************" /> </log> <send> <header name="To" value="jms:/cn=tro_Q_JMS1,cn=OracleDBQueues,cn=ORCL,cn=OracleContext,ou=Services,o=sgi,c=us"/> </send> </outSequence> </target> <publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/> <parameter name="transport.jms.ContentType"> <rules> <jmsProperty>ContentType</jmsProperty> <default>text/plain</default> </rules> </parameter> <parameter name="transport.jms.Destination">cn=tro_Q_JMS2,cn=OracleDBQueues,cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us</parameter> </proxy> <localEntry key="jmsMsgToSoapMsg_xslt" src="file:jmsMsgToSoapMsg.xslt" /> <sequence name="fault"> <log level="full"> <property name="MESSAGE" value="Executing default "fault" sequence" /> <property name="ERROR_CODE" expression="get-property('ERROR_CODE')" /> <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')" /> </log> <drop /> </sequence> <sequence name="main"> <log /> <drop /> </sequence> </sequence> On Monday, November 3, 2014 5:37 PM, Isuru Udana <[email protected]> wrote: Hi All, We can use existing JMS transport for Oracle AQ integration. There are set of extra configurations needed to be done like setting us a LDAP server etc. Resource available at [1] describes Oracle AQ integration with WSO2 ESB. Since WSO2 ESB uses synapse as the mediation engine, we should be able do in the same way for synapse. And synapse do support to plug-in custom MessageStores. So we have that option too. [1] http://wso2.com/library/tutorials/2011/11/configuring-wso2-esb-with-oracle-as-messaging-media/ Thanks. On Tue, Nov 4, 2014 at 2:30 AM, Rajika Kumarasiri <[email protected]> wrote: Oracle AQ provides a JNDI API and you should be able to use the JMS transport without much trouble. Rajika On Mon, Nov 3, 2014 at 10:31 AM, Tech Bolek <[email protected]> wrote: > Greetings, > I'm looking for recomendations how to extend Synapse to support Oracle AQ > messages. For example, I'd like to be able to specify in the configuration > file that a message from a specific channel is to be sent to a pecific > queue. Or that a message that originates in a specific queue is to be > forwarded to web service. Oracle AQ has its own java API and I'm wondering > how to integrate it with Synapse. I'm considering wiritng a custom > transport and as well as looking at the Task interface or the Mediator > interface. > -- Isuru Udana Senior Software Engineer; WSO2 Inc.; http://wso2.com email: [email protected] blog: http://mytecheye.blogspot.com/ twitter: http://twitter.com/isudana
