从Camel连接的Weblogic JMS URL

时间:2015-04-22 16:43:06

标签: java spring jms apache-camel weblogic12c

我正在使用WebLogic Server:12.1.1.0,Spring 3.2.11.RELEASE和Camel 2.13.4。

我有以下配置:

<bean id="jndiTemplate" 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://localhost:7001</prop>
            <prop key="java.naming.security.principal">username</prop>
            <prop key="java.naming.security.credentials">the_password</prop>
        </props>
    </property>
</bean>

但是我在部署后得到了这条消息:

22-apr-2015 18.29.39 org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful
GRAVE: Could not refresh JMS Connection for destination 'CamelTest' - retrying in 5000 ms. Cause: JndiObjectTargetSource failed to obtain new target object; nested exception is javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://localhost:7001: Destination unreachable; nested exception is: 
    java.net.ConnectException: Connection refused; No available router to destination]

如何连接到JMS服务器?

2 个答案:

答案 0 :(得分:2)

在spring-boot中,我正在配置这样的JMS

 @Configuration
 @EnableJms
 public class JmsConfiguration implements JmsListenerConfigurer {
    ...
    // register here your jms listners
    @Override
    public void configureJmsListeners{
    ...
    }
 }

然后在收到消息时随心所欲地做任何事情

 @Override
 @JmsListener(destination = "queue")
 public void processQueue(ResponseType response){

        //process message as you want
 }

答案 1 :(得分:1)

解决方案实际上是在配置中使用服务器IP地址而不是localhost。