문제

IBM MessageSight와 함께 작동하도록 JMS 전송을 구성하는 방법은 다음과 유사합니다. http://docs.wso2.org/display/esb460/configure+with +activemq

지금, Axis2.xml :

에 다음이 있습니다.
  <transportReceiver name="ibmMsgSightJMS" class="org.apache.axis2.transport.jms.JMSListener">
       <parameter name="myTopicConnectionFactory" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">com.ibm.ima.jms.ImaJmsFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">tcp://192.168.154.128:1883</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
       </parameter>

       <parameter name="myQueueConnectionFactory" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">com.ibm.ima.jms.ImaJmsFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">tcp://192.168.154.128:1883</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
       </parameter>
       <parameter name="default" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">com.ibm.ima.jms.ImaJmsFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">tcp://192.168.154.128:1883</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
       </parameter>
   </transportReceiver>
.

과 ESB 프록시 서비스에서 이와 같은 것이 있습니다.

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="esbProcessMqttJMSPS" statistics="disable" trace="disable" transports="ibmMsgSightJMS">
    <parameter name="transport.jms.ConcurrentConsumers">1</parameter>
    <parameter name="transport.jms.ConnectionFactory">myTopicConnectionFactory</parameter>
    <parameter name="transport.jms.DestinationType">B</parameter>
    <parameter name="transport.jms.Destination">B</parameter>
</proxy>
.

ESB 서버를 시작하면 다음과 같은 오류가 발생합니다. JNDI 컨텍스트를 획득 할 수 없음 : TopicConnectionFactory 또는 기본 대상 : JMS CF에 대한 null

도움이 크게 감사 할 것입니다.감사합니다!

도움이 되었습니까?

해결책

괜찮아. 그래서 나는 이것을 알아 냈다.

axis2.xml의 JMS 구성은 다음과 같아야합니다.

   <transportReceiver name="ibmMsgSightJMS" class="org.apache.axis2.transport.jms.JMSListener">
       <parameter name="myTopicConnectionFactory">
           <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">file:/C:/path/to/wso2/repository/conf/jndi</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">connFactory1</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
       </parameter>

       <parameter name="myQueueConnectionFactory">
           <parameter name="java.naming.factory.initial">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
           <parameter name="java.naming.provider.url">file:/C:/path/to/wso2/repository/conf/jndi</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName">connFactory1</parameter>
            <parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
       </parameter>

       <parameter name="default">
           <parameter name="java.naming.factory.initial">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
           <parameter name="java.naming.provider.url">file:/C:/path/to/wso2/repository/conf/jndi</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName">connFactory1</parameter>
            <parameter name="transport.jms.ConnectionFactoryType">topic</parameter>
       </parameter>
   </transportReceiver>
.

와 다음과 같은 JNDI 속성 파일이 있습니다.

connFactory1/ClassName=com.ibm.ima.jms.impl.ImaConnectionFactory
connFactory1/FactoryName=com.ibm.ima.jms.impl.ImaConnectionFactory
connFactory1/RefAddr/0/Encoding=String
connFactory1/RefAddr/0/Type=Port
connFactory1/RefAddr/0/Content=16102
connFactory1/RefAddr/1/Encoding=String
connFactory1/RefAddr/1/Type=Server
connFactory1/RefAddr/1/Content=192.168.154.128
connFactory1/RefAddr/2/Encoding=String
connFactory1/RefAddr/2/Content=common
connFactory1/RefAddr/2/Type=ObjectType
RequestTopic/ClassName=com.ibm.ima.jms.impl.ImaTopic
RequestTopic/FactoryName=com.ibm.ima.jms.impl.ImaTopic
RequestTopic/RefAddr/0/Encoding=String
RequestTopic/RefAddr/0/Type=Name
RequestTopic/RefAddr/0/Content=testRequestTopic
ResponseTopic/ClassName=com.ibm.ima.jms.impl.ImaTopic
ResponseTopic/FactoryName=com.ibm.ima.jms.impl.ImaTopic
ResponseTopic/RefAddr/0/Encoding=String
ResponseTopic/RefAddr/0/Type=Name
ResponseTopic/RefAddr/0/Content=testResponseTopic
.

또한 imajmsclient.jar를 구성 요소 / lib 안에 넣는 것을 잊지 마십시오.

모든 서비스가 주제 / 대기열을 만드는 문제가 있으며 .bindings에 정의되어 있지 않기 때문에 서버가 PUKING입니다.모든 데이터 서비스 및 JAR 서비스에서 JMS 전송 프로토콜을 제거 하여이 작업을 해결했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top