2

我试图让我们在 wso2ESB 中的代理向 wso2 消息代理发送消息。我正在阅读将ESB 集成到 MB的文章,该文章说“打开 /repository/conf/JNDI.proerties 文件并指向正在运行的消息代理”。

在哪里可以找到 MB 端的信息,我需要将这些信息带到我的 ESB 设置中,以便我可以从我的 ESB 获得这个初始连接到 Message Broker?

11/7 编辑以提供更多信息

我在代理中使用 smooks 调解器(下面列出的配置)来尝试向 wso2 消息代理 (MB) 发送消息。我收到一个异常,说它找不到我的队列(错误如下)。当我通过“try it”功能运行一条没有 smooks 的简单消息时,它可以工作。

我不确定我的断开连接在哪里。我的 smooks 设置和示例代理之间的主要区别在于我的代理发布了 JMS URI (jms:/MyQueue?transport.jms.DestinationType=queue)。我一直在寻找示例,但我没有看到这将在哪里设置。

所以我的问题是 Smooks 可以向 wso2MB 发送消息还是必须是 ActiveMQ?如果它可以转到 wso2MB,任何人都可以通过我的设置为我指明正确的方向吗?

这个值在我的 jndi.properties 文件中定义:destination="queue.MyQueue"

我尝试过 smooks.MyQueue、MyQueue 等。它们都收到相同的异常。

谢谢(下面的 Smooks 配置和异常)。

例外

2015-11-07 21:37:35,456 [-] [vfs-Worker-16] ERROR SequenceMediator Error invoking @Initialize method 'initialize' on class 'org.milyn.routing.jms.JMSRouter'.
org.milyn.cdr.SmooksConfigurationException: Error invoking @Initialize method 'initialize' on class 'org.milyn.routing.jms.JMSRouter'.
    at org.milyn.cdr.annotation.Configurator.invoke(Configurator.java:457)
    at org.milyn.cdr.annotation.Configurator.initialise(Configurator.java:439)
    at org.milyn.cdr.annotation.Configurator.configure(Configurator.java:91)
    at org.milyn.cdr.annotation.Configurator.configure(Configurator.java:66)
    at org.milyn.delivery.JavaContentHandlerFactory.create(JavaContentHandlerFactory.java:63)
    at org.milyn.delivery.ContentDeliveryConfigBuilder$ContentHandlerExtractionStrategy.addCDU(ContentDeliveryConfigBuilder.java:623)
    at org.milyn.delivery.ContentDeliveryConfigBuilder$ContentHandlerExtractionStrategy.applyCDUStrategy(ContentDeliveryConfigBuilder.java:548)
    at org.milyn.delivery.ContentDeliveryConfigBuilder$ContentHandlerExtractionStrategy.applyStrategy(ContentDeliveryConfigBuilder.java:536)
    at org.milyn.delivery.ContentDeliveryConfigBuilder$SmooksResourceConfigurationTableIterator.iterate(ContentDeliveryConfigBuilder.java:711)
    at org.milyn.delivery.ContentDeliveryConfigBuilder$SmooksResourceConfigurationTableIterator.access$300(ContentDeliveryConfigBuilder.java:690)
    at org.milyn.delivery.ContentDeliveryConfigBuilder.extractContentHandlers(ContentDeliveryConfigBuilder.java:484)
    at org.milyn.delivery.ContentDeliveryConfigBuilder.load(ContentDeliveryConfigBuilder.java:349)
    at org.milyn.delivery.ContentDeliveryConfigBuilder.getConfig(ContentDeliveryConfigBuilder.java:146)
    at org.milyn.container.standalone.StandaloneExecutionContext.<init>(StandaloneExecutionContext.java:91)
    at org.milyn.container.standalone.StandaloneExecutionContext.<init>(StandaloneExecutionContext.java:65)
    at org.milyn.Smooks.createExecutionContext(Smooks.java:411)
    at org.milyn.Smooks.createExecutionContext(Smooks.java:374)
    at org.wso2.carbon.mediator.transform.SmooksMediator.mediate(SmooksMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.axis2.transport.base.AbstractTransportListener.handleIncomingMessage(AbstractTransportListener.java:328)
    at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:751)
    at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:407)
    at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:177)
    at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:124)
    at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.milyn.cdr.SmooksConfigurationException: NamingException while trying to lookup [queue.MyQueue]
    at org.milyn.routing.jms.JMSRouter.initialize(JMSRouter.java:217)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.milyn.cdr.annotation.Configurator.invoke(Configurator.java:453)
    ... 32 more
Caused by: javax.naming.NameNotFoundException: Name [queue.MyQueue] is not bound in this Context. Unable to find [queue.MyQueue].
    at org.apache.naming.NamingContext.lookup(NamingContext.java:819)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
    at org.wso2.carbon.context.internal.CarbonContextDataHolder$CarbonInitialJNDIContext.lookup(CarbonContextDataHolder.java:705)
    at javax.naming.InitialContext.lookup(InitialContext.java:411)
    at org.milyn.routing.jms.JMSRouter.initialize(JMSRouter.java:207)

烟雾配置

<?xml version="1.0" encoding="utf-8"?>
<smooks-resource-list xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.3.xsd"
xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd" xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.2.xsd"
xmlns:jms="http://www.milyn.org/xsd/smooks/jms-routing-1.2.xsd" xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd">

  <core:filterSettings defaultSerialization="false" type="SAX" />

  <resource-config selector="order,order-item">
    <resource>org.milyn.delivery.DomModelCreator</resource>
  </resource-config>

  <jb:bean beanId="row" class="java.util.Hashtable" createOnElement="row">
    <jb:value data="row/@iBookID" decoder="Integer" property="iBookID"></jb:value>
    <jb:value data="row/@vchEAN" decoder="String" property="vchEAN"></jb:value>
    <jb:value data="row/@vchISBN" decoder="String" property="vchISBN"></jb:value>
  </jb:bean>

  <ftl:freemarker applyOnElement="row">
    <ftl:template>
      <!--<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
        <p:insert_Levels_AR_ISBN_operation>
            <p:iBookID xmlns:xs="http://ws.wso2.org/dataservice">${row.iBookID}</p:iBookID>
            <p:vchEAN xmlns:xs="http://ws.wso2.org/dataservice">${row.vchEAN}</p:vchEAN>
        </p:insert_Levels_AR_ISBN_operation>
        </soapenv:Body>
</soapenv:Envelope>-->
    </ftl:template>
    <ftl:use>
      <ftl:bindTo id="row_xml"/>
    </ftl:use>
  </ftl:freemarker>

  <jms:router routeOnElement="row" beanId="row_xml" destination="queue.MyQueue">
    <jms:message>
      <jms:correlationIdPattern>isbn-${row.iBookID}-${row.vchEAN}:${row.vchISBN}</jms:correlationIdPattern>
    </jms:message>
    <jms:jndi properties="/repository/conf/jndi.properties" />
    <jms:highWaterMark mark="-1" />
  </jms:router>

</smooks-resource-list>

更新 11/15

MB 的端口偏移量为 +4。我已经尝试了端口 5672 和 5676,因为我想我在某处读到这必须增加相同的次数;他们都没有工作。我现在添加了 3 个队列,到目前为止它们都返回上述相同的错误。我最近将 {create:always} 添加到属性文件中。它的行为没有改变。

jndi.properties

# register some connection factories
# connectionfactory.[jndiname] = [ConnectionURL]
connectionfactory.ConnectionFactory = amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5672'

# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.MyQueue = MyQueue
queue.LevelsAR_ISBNService = LevelsAR_ISBNService {create:always}
queue.Levels_AR_Merge = Levels_AR_Merge {create:always}
4

0 回答 0