【发布时间】:2023-03-11 23:17:01
【问题描述】:
我使用 grails-activemq 插件将 ActiveMQ 代理嵌入到运行在 Tomcat 7 中的 Grails 应用程序中。问题是代理只侦听本地连接。 netstat -an 显示:
我已经像这样在tomcat/conf/context.xml中设置了JNDI
<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')
}
}
}
我在哪里指定或默认接受代理不侦听本地主机之外的连接这一事实?我该如何改变呢?
非常感谢,
李·格雷
【问题讨论】: