从WildFly Swarm发送JMS消息到WebLogic 11g

时间:2018-02-06 10:29:54

标签: jms weblogic11g wildfly-swarm

我正在尝试在Wildfly Swarm中复制从Wildfly 8向Weblogic发送JMS消息而不使用Camel(http://blog.eisele.net/2015/07/sending-jms-messages-from-wildfly-8-to-weblogic-with-camel.html)的过程,但没有成功。

我所做的事情如下:

1)为wlthint3client.jar创建模块(src / main& resources / modules / custom / oracle / weblogic):

<module xmlns="urn:jboss:module:2.0" name="custom.oracle.weblogic">
    <resources>
        <resource-root path="wlthint3client.jar">
            <filter>
                <exclude-set>
                    <path name="javax.ejb"/>
                    <path name="javax.ejb.spi"/>
                    <path name="javax.transaction"/>
                    <path name="javax.jms"/>
                    <path name="javax.xml"/>
                    <path name="javax.xml.stream"/>
                </exclude-set>
            </filter>
        </resource-root>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="sun.jdk" export="false" services="import">
            <exports>
                <include-set>
                    <path name="sun/security/acl"/>
                    <path name="META-INF/services"/>
                </include-set>
            </exports>
        </module>
        <module name="com.sun.xml.bind" />
        <module name="org.omg.api"/>
        <module name="javax.ejb.api" export="false"   />
        <module name="javax.transaction.api"  export="false" />
        <module name="javax.jms.api"  export="false" />
        <module name="javax.xml.stream.api" export="false"  />
        <module name="org.picketbox" optional="true"/>
        <module name="javax.servlet.api" optional="true"/>
        <module name="org.jboss.logging" optional="true"/>
        <module name="org.jboss.as.web" optional="true"/>
        <module name="org.jboss.as.ejb3" optional="true"/>
        <module name="org.hornetq" />
    </dependencies>
</module>

现在,问题是如何将jms-bridge配置转换为project-stages.yml:

<jms-bridge name="wls-bridge" module="custom.oracle.weblogic">
                <source>
                    <connection-factory name="java:/ConnectionFactory"/>
                    <destination name="java:/jms/sourceQ"/>
                </source>
                <target>
                    <connection-factory name="jms/WFMessagesCF"/>
                    <destination name="jms/WFMessages"/>
                    <context>
                        <property key="java.naming.factory.initial"
                              value="weblogic.jndi.WLInitialContextFactory"/>
                        <property key="java.naming.provider.url" 
                              value="t3://127.0.0.1:7001"/>
                    </context>
                </target>
                <quality-of-service>AT_MOST_ONCE</quality-of-service>
                <failure-retry-interval>2000</failure-retry-interval>
                <max-retries>10</max-retries>
                <max-batch-size>500</max-batch-size>
                <max-batch-time>500</max-batch-time>
                <add-messageID-in-header>true</add-messageID-in-header>
            </jms-bridge>

直到现在我无法在project-stages-yml文件中复制它,并在我启动java项目时看到记录的一些信息。 有人会帮我解决这个问题吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您需要在project-defaults.yml中创建一个使用here提及的键的部分。

例如,上面的内容就像:

swarm:
  messaging-activemq:
    jms-bridges:
      wls-bridge:
        failure-retry-interval: 2000
        max-batch-size: 500
        max-batch-time: 500
        source-connection-factory: java:/ConnectionFactory
        source-destination: java:/jms/sourceQ
        target-connection-factory: jms/WFMessagesCF

这不是完整的设置列表,但应足以让您开始将其转换为yaml。