Брокер ActiveMQ, встроенный в приложение Grails, не прослушивает внешние подключения - PullRequest
1 голос
/ 27 июля 2011

Я использовал плагин grails-activemq для встраивания брокера ActiveMQ в приложение Grails, запущенное в Tomcat 7. Проблема в том, что брокер прослушивает только локальные соединения.netstat -an показывает это:

tcp        0      0 127.0.0.1:61616             0.0.0.0:*                   LISTEN

Я настроил JNDI в tomcat / conf / context.xml примерно так

<Context>
    <Resource name="jms/ConnectionFactory" auth="Container"
        type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection Factory"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory"
        brokerURL="tcp://10.39.95.39:61616"
    brokerName="LocalActiveMQBroker"/>
    <Resource name="jms/letterCountQueue" auth="Container"
        type="org.apache.activemq.command.ActiveMQQueue" description="letterCountQueue"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="letterCountQueue"/>
</Context>

И grails-app / conf / spring / resources.groovy содержит

import org.apache.activemq.ActiveMQConnectionFactory
import org.apache.activemq.broker.TransportConnector
import org.apache.activemq.command.ActiveMQQueue
import org.apache.activemq.xbean.XBeanBrokerService

import org.springframework.jms.core.JmsTemplate
import org.springframework.jms.connection.SingleConnectionFactory
import org.springframework.jms.listener.DefaultMessageListenerContainer

beans = {

    jmsBroker(XBeanBrokerService) {
        useJmx = 'false'
        persistent = 'false'
        transportConnectors = [new TransportConnector(uri: new URI('tcp://10.39.95.39:61616'))]
    }

    jmsFactory(ActiveMQConnectionFactory) {
        brokerURL = 'tcp://10.39.95.39:61616'
    }

    notificationQueue(ActiveMQQueue, 'queue.notification')

    jmsTemplate(JmsTemplate) {
        connectionFactory =  { SingleConnectionFactory cf ->
            targetConnectionFactory = ref('jmsFactory')
        }
    }
}

Где я указал или принял по умолчанию тот факт, что посредник не прослушивает соединения за пределами localhost?Как я могу это изменить?

Большое спасибо,
Ли Грей

...