0
Oracle JMS 큐에서 메시지를 읽고, 웹 서비스를 호출하고 로그에서 응답을 캡처하는 Synapse 구성이 있습니다. 구성은 다음을 기준으로합니다. ws02 with oracle시냅스에서 jms 큐로 응답 보내기
다른 Oracle quueue에서 응답을 캡처하도록 구성을 확장하려고했지만 아래 오류가 발생합니다. 답장 대상 유형을 "대기열"로 지정 했음에도 불구하고 그는 여전히 대기열 세션 대신 주제 세션을 만들려고합니다.
2014-12-15 14:13:21,728 [-] [HttpClientWorker-1] ERROR JMSSender Unable to create a JMSMessageSender for : [email protected] 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)
구성 :
<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_JMS1,cn=OracleDBQueues,cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us</parameter>
<parameter name="transport.jms.ReplyDestinationType">queue</parameter>
<parameter name="transport.jms.ReplyDestination">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>
</definitions>