【问题标题】:How to send a JMS message from JBOSS Fuse to Weblogic JMS如何从 JBOSS Fuse 向 Weblogic JMS 发送 JMS 消息
【发布时间】:2016-03-05 06:54:45
【问题描述】:

我正在尝试从 Active-MQ 向 Weblogic 发送消息。 我已经创建了如下的 JMS 桥:

<jmsBridgeConnectors>     
 <jmsQueueConnector name="JreportRequestBridge-Inbound" jndiOutboundTemplate="#remoteJndi"outboundQueueConnectionFactoryName="jms/ConnectionFactory"
    localQueueConnectionFactory="#activemqConnectionFactory">        
            <inboundQueueBridges>          
                <inboundQueueBridge inboundQueueName="RequestQueue"/></inboundQueueBridges>      
            </jmsQueueConnector>    
        </jmsBridgeConnectors>
<bean id="remoteJndi" class="org.springframework.jndi.JndiTemplate">        
        <property name="environment">                
            <props>                        
                <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                <prop key="java.naming.provider.url">t3://host:port</prop>                
            </props>
        </property>
    </bean>

现在,当我尝试使用目标 url 创建 Brokerservice 时,出现如下异常:

java.io.IOException: Transport scheme NOT recognized: [t3]
    at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:25)
    at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:171)
    at org.apache.activemq.transport.TransportFactory.bind(TransportFactory.java:108)
    at org.apache.activemq.broker.BrokerService.createTransportConnector(BrokerService.java:1348)
    at org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:163)
    at org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:153)
    at test.oas.Server.<init>(Server.java:32)
    at test.oas.Server.main(Server.java:99)
Caused by: java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/transport/t3
    at org.apache.activemq.util.FactoryFinder.doFindFactoryProperies(FactoryFinder.java:90)
    at org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:58)
    at org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:47)
    at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:167)
    ... 6 more

创建 BrokerService 的代码:

try {            
            //This message broker is embedded            
            BrokerService broker = new BrokerService();            
            broker.setPersistent(false);            
            broker.setUseJmx(false);            
            broker.addConnector(messageBrokerUrl);            
            broker.start();       
            } catch (Exception e) {

                e.printStackTrace();      
                }     

谁能帮帮我。

【问题讨论】:

  • 你有没有找到解决这个问题的方法?我怀疑类路径中缺少一些 JAR,但我不确定。谢谢。

标签: java jboss jms weblogic-10.x


【解决方案1】:

这是一个老问题,但正如 Alan 在评论中提到的,这是因为 ActiveMQ 需要“jms”驱动程序才能与 Weblogic 对话。

在weblogic 11g(10.3.6)中,你需要把库wlthint3client.jar放到ActiveMQ里面的lib文件夹中。这是 weblogic t3 瘦客户端,它允许使用 t3 协议连接到它。

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 1970-01-01
    • 2013-05-22
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2014-02-15
    相关资源
    最近更新 更多