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 &quot;fault&quot; 
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 
&quot;fault&quot; 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





    

   

Reply via email to