首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wso2esb中创建JMS配置时出错

在wso2esb中创建JMS配置时出错
EN

Stack Overflow用户
提问于 2015-01-19 12:04:33
回答 1查看 1.2K关注 0票数 1

我使用的是wso2esb4.7.0和wso2mb-2.2.0。我希望使用wso2mb创建jms代理服务。为此,我配置了wso2mb和wso2esb,类似于:

Wso2esb配置:(jndi.properties中的更改)

代码语言:javascript
复制
# register some connection factories
# connectionfactory.[jndiname] = [ConnectionURL]
 connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'
 connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'


# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.MyQueue = MyQueue

axis2.xml中的更改:

取消注释以下代码:

代码语言:javascript
复制
 <transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/>

 <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
        <parameter name="myTopicConnectionFactory" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</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">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</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">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">ConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
        </parameter>
    </transportReceiver>

还将andes-client-*.jargeronimo-jms_1.1_spec-*.jar从$MB_HOME/client-lib复制到$ESB_HOME/存储库/geronimo-jms_1.1_spec-*.jar/lib

重新启动servers.Till --它很好用。

现在希望创建一个带有jms端口的服务。它正在创建一个服务,但它马上就会转到错误的服务和esb日志中,显示错误,如下所示:

代码语言:javascript
复制
 ERROR - JMSListener Unexpected error when configuring service SampleJMS for the JMS transport. It will be disabled for this transport and marked as faulty.
java.lang.NullPointerException
    at org.apache.axis2.transport.jms.JMSListener.getConnectionFactory(JMSListener.java:132)
    at org.apache.axis2.transport.jms.JMSEndpoint.loadConfiguration(JMSEndpoint.java:193)
    at org.apache.axis2.transport.base.AbstractTransportListenerEx.startListeningForService(AbstractTransportListenerEx.java:153)
    at org.apache.axis2.transport.base.AbstractTransportListener.internalStartListeningForService(AbstractTransportListener.java:213)
    at org.apache.axis2.transport.base.AbstractTransportListener$2.serviceAdded(AbstractTransportListener.java:126)
    at org.apache.axis2.transport.base.tracker.AxisServiceTracker.serviceAdded(AxisServiceTracker.java:212)
    at org.apache.axis2.transport.base.tracker.AxisServiceTracker.start(AxisServiceTracker.java:188)
    at org.apache.axis2.transport.base.AbstractTransportListener.start(AbstractTransportListener.java:178)
    at org.apache.axis2.transport.base.AbstractTransportListenerEx.start(AbstractTransportListenerEx.java:83)

此外,当重新启动它时,会显示错误,例如:

错误-名称org.apache.axis2.transport.base.BaseTransportException: ConnectionFactory的BaseUtils JNDI查找返回了一个org.wso2.andes.client.AMQQueue,而接口javax.jms.ConnectionFactory预期为2015-01-20 :22:27,709错误- ListenerManager无法初始化jmstransport侦听器ConnectionFactory JNDI查找名称ConnectionFactory返回一个org.wso2.andes.client.AMQQueue,而接口javax.jms.ConnectionFactory是预期的

我的代理配置是:

代码语言:javascript
复制
  <target> 
      <inSequence> 
         <property name="Action" 
                   value="urn:placeOrder" 
                   scope="default" 
                   type="STRING"/> 
         <log level="full"/> 
         <send> 
            <endpoint> 
               <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> 
            </endpoint> 
         </send> 
      </inSequence> 
      <outSequence> 
         <drop/> 
      </outSequence> 

为什么会这样呢?他们的jms配置有什么问题吗?请引导我。

EN

回答 1

Stack Overflow用户

发布于 2015-01-21 12:59:59

在jndi.properties中,您定义了:

  • QueueConnectionFactory
  • TopicConnectionFactory

在axis.xml中,您可以使用:

  • QueueConnectionFactory
  • TopicConnectionFactory
  • 并且,在默认的部分中,"ConnectionFactory

我不使用WSO2MB,我不知道这是不是你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28024253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档