我正在尝试从WSO2 ESB填充JMS消息存储库。
我为邮件存储设置了以下配置...
<messageStore name="JMSMS" class="org.apache.synapse.message.store.impl.jms.JmsStore"
xmlns="http://ws.apache.org/ns/synapse">
<parameter name="java.naming.factory.initial">org.wso2.andes.jndi.PropertiesFileInitialContextFactory
</parameter>
<parameter name="java.naming.provider.url">repository/conf/jndi.properties</parameter>
<parameter name="store.jms.destination">JMSMS</parameter>
<parameter name="store.jms.username">admin</parameter>
<parameter name="store.jms.password">admin</parameter>
<parameter name="store.jms.JMSSpecVersion">1.1</parameter>
当我启动ESB时,我收到以下错误: -
[2014-07-29 16:43:45,633]错误 - JmsStore商店[JMSMS]。不能 创建与代理的新连接。初始背景 工厂:[org.apache.qpid.jn di.PropertiesFileInitialContextFactory]; 提供者URL:[repository / conf / jndi.properties];连接 工厂:[空]
我已使用上面的java.naming.factory.initial
成功连接到标准Message Broker队列作为端点,而不通过Message存储。
我也尝试将java.naming.factory.initial
的值更改为org.apache.qpid.jndi.PropertiesFileInitialContextFactory
,但会出现同样的错误。
有没有人知道我缺少哪些配置或文件?
干杯 MACCA
更新
以下是我正在使用的jndi.properties和axis2.xml配置
JNDI.Properties
connectionfactory.ConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://inf02-3:5673'
queue.JMSMS=JMSMS
axis2.xml
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">
<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>
</transportSender>
答案 0 :(得分:2)
您获得错误的原因&#34;连接工厂:[null]&#34;是ESB_HOME / repository / conf / jndi.properties中的miss配置。
请重新检查一下,你可以在wso2库上找到一篇非常好的文章 - configuring wso2 esb with wso2 message broker
答案 1 :(得分:1)
我对这个问题有另一种解释。我遇到了我在新设置的UAT机器上部署我的工作的情况。测试开始时,我立即开始收到“连接工厂:[null]”问题。 我在所有配置上调查了几个小时,结果发现我忘了将两个* jar文件复制到[ESB_HOME] \ repository \ components \ lib
我希望它有所帮助。