【问题标题】:ActiveMQ broker embedded into Grails app is not listening for external connections嵌入到 Grails 应用程序中的 ActiveMQ 代理未侦听外部连接
【发布时间】:2023-03-11 23:17:01
【问题描述】:

我使用 grails-activemq 插件将 ActiveMQ 代理嵌入到运行在 Tomcat 7 中的 Grails 应用程序中。问题是代理只侦听本地连接。 netstat -an 显示:

tcp 0 0 127.0.0.1:61616 0.0.0.0:* 听

我已经像这样在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')
        }
    }
}

我在哪里指定或默认接受代理不侦听本地主机之外的连接这一事实?我该如何改变呢?

非常感谢,
李·格雷

【问题讨论】:

    标签: grails activemq


    【解决方案1】:

    我遇到了和你一样的问题。尝试修改%ACTIVEMQ_HOME%/conf/activemq.xml,像这样:

    <transportConnectors>
        <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
        <transportConnector name="openwire" uri="tcp://192.168.1.252:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    </transportConnectors>
    

    【讨论】:

      猜你喜欢
      • 2015-02-03
      • 2013-06-16
      • 1970-01-01
      • 2010-11-01
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      相关资源
      最近更新 更多