talend tJMSInput with WSO2 Message Broker

时间:2015-07-21 14:48:02

标签: jms wso2 wso2esb talend messagebroker

我正在创建一个talend作业,这将允许我从JMS队列中获取消息。为此,我尝试在talend中配置tJMSInput组件以侦听消息代理队列。

当我尝试运行创建的作业时,我收到以下错误:

`Démarrage du job sauvegarde a 16:23 21/07/2015`.
[statistics] connecting to socket on port 3805
[statistics] connected
[main] WARN org.wso2.andes.jndi.PropertiesFileInitialContextFactory - Unable to load property file specified in Provider_URL:amqp://admin:admin@clientID:carbon?brokerlist='tcp://localhost:5682'
Due to:amqp:\admin:admin@clientID:carbon?brokerlist='tcp:\localhost:5682' (La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte)

组件tJMSInput_1中的异常

javax.naming.NameNotFoundException: myQueueConnectionFactory
at org.wso2.andes.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:271)
at javax.naming.InitialContext.lookup(Unknown Source)
at  output_agent.sauvegarde_0_1.sauvegarde.tJMSInput_1Process(sauvegarde.java:882)
at output_agent.sauvegarde_0_1.sauvegarde.tLibraryLoad_2Process(sauvegarde.java:641)
at output_agent.sauvegarde_0_1.sauvegarde.tInitLog4J_1Process(sauvegarde.java:538)
  at 
     output_agent.sauvegarde_0_1.sauvegarde.tPrejob_1Process(sauvegarde.java:410)
  at 
 output_agent.sauvegarde_0_1.sauvegarde.runJobInTOS(sauvegarde.java:1259)
 at output_agent.sauvegarde_0_1.sauvegarde.main(sauvegarde.java:1118)
[statistics] disconnected
Job sauvegarde terminé à 16:23 21/07/2015. [Code sortie=1]`

我不知道它是来自URL格式还是连接工厂名称,我已经尝试使用ActiveMQ队列并且它运行良好。消息代理队列中唯一发生变化的是url。

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

我发现了问题。

qpid上下文工厂org.wso2.andes.jndi.PropertiesFileInitialContextFactory不使用与activeMQ上下文工厂org.apache.activemq.jndi.ActiveMQInitialContextFactory相同的字段。

虽然ActiveMQ允许您不使用带Talend的单独属性文件,但Qpid却没有。

Talend配置

在tJMSInput之前,您必须使用 tLibraryLoad 组件加载 geronimo-jms_1.1_spec-X.X.X.wso2vX.jar 库。

Talend tJMSInput配置:

  • 模块列表:andes-client-X.XX.wso2vXX.jar
  • 上下文提供者: “org.wso2.andes.jndi.PropertiesFileInitialContextFactory”
  • 服务器URL:“myfile.properties”
  • 连接工厂JDNI名称:“qpidConnectionfactory”
  • 消息类型:队列
  • 消息来自:“myQueue”

<强> myfile.properties:

connectionfactory.qpidConnectionfactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5682'
queue.myQueue= myQueue
  

参考:Qpid Wiki