【问题标题】:Hostname problem with Wildfly 10 and RabbitMQ JDNI configurationWildfly 10 和 RabbitMQ JDNI 配置的主机名问题
【发布时间】:2021-01-15 19:40:17
【问题描述】:

我正在按照此文档为 Wildfly 10 和 RabbitMQ 配置 JNDI

https://www.rabbitmq.com/jms-client.html

我使用 JNDI 的原因是我的应用程序不依赖于任何 JMS Provider 的库。这意味着,在我的应用程序中,我使用 javax.jms-api-2.0.jar 仅用于与 RabbitMQ 或 ActiveMQ 集成......稍后。

这是我在 Wildfly Standalone.xml 文件中的配置。

                <object-factory name="java:global/jms/ConnectionFactory1" module="com.rabbitmq.jms" 
                    class="com.rabbitmq.jms.admin.RMQObjectFactory">
                    <environment>
                        <property name="className" value="javax.jms.ConnectionFactory"/>
                        <property name="virtualHost" value="/"/>
                        <property name="host" value="rabbitmq_server"/>
                        <property name="port" value="5672"/>
                    </environment>
                </object-factory>

这是集成的源代码。

            Context context = new InitialContext();
            ConnectionFactory connectionFactory
                    = (ConnectionFactory) context.lookup("java:global/jms/ConnectionFactory1");
            if (connectionFactory == null) {
                System.out.println("Cannot initiallize connection factory.");
                return;
            }
            Connection connection = connectionFactory.createConnection(
                    "guest",
                    "guest");
            
            if (connection == null) {
                System.out.println("Initiallize connection failed.");
                return;
            }
            Session session = connection.createSession(false, QueueSession.AUTO_ACKNOWLEDGE);
            if (session == null) {
                System.out.println("Initiallize session failed.");
                return;
            }

我的问题是: 在这种配置下,

  1. 如果我设置的值为 IP 地址 => 没问题
  2. 如果我将值设置为主机名(已在我的 hosts 文件中映射到 IP 地址)=> 它始终会创建到 localhost 的连接。

有人遇到过这个问题吗?

12:00:12,318 ERROR [stderr] (default task-15) com.rabbitmq.jms.util.RMQJMSException: RabbitMQ connection was refused. RabbitMQ broker may not be available.

12:00:12,319 ERROR [stderr] (default task-15)   at com.rabbitmq.jms.admin.RMQConnectionFactory.instantiateNodeConnection(RMQConnectionFactory.java:170)

12:00:12,319 ERROR [stderr] (default task-15)   at com.rabbitmq.jms.admin.RMQConnectionFactory.createConnection(RMQConnectionFactory.java:117)

12:00:12,319 ERROR [stderr] (default task-15)   at com.mypackage.web.servlet.WhiteListRegistration.test(WhiteListRegistration.java:68)

12:00:12,320 ERROR [stderr] (default task-15)   at com.mypackage.web.servlet.WhiteListRegistration.processRequest(WhiteListRegistration.java:106)

12:00:12,320 ERROR [stderr] (default task-15)   at com.mypackage.web.servlet.WhiteListRegistration.doPost(WhiteListRegistration.java:180)

12:00:12,320 ERROR [stderr] (default task-15)   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)

12:00:12,321 ERROR [stderr] (default task-15)   at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

12:00:12,321 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)

12:00:12,321 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)

12:00:12,322 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

12:00:12,322 ERROR [stderr] (default task-15)   at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

12:00:12,323 ERROR [stderr] (default task-15)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

12:00:12,323 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

12:00:12,324 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)

12:00:12,325 ERROR [stderr] (default task-15)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

12:00:12,325 ERROR [stderr] (default task-15)   at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)

12:00:12,326 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)

12:00:12,326 ERROR [stderr] (default task-15)   at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)

12:00:12,327 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)

12:00:12,327 ERROR [stderr] (default task-15)   at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)

12:00:12,327 ERROR [stderr] (default task-15)   at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)

12:00:12,327 ERROR [stderr] (default task-15)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

12:00:12,328 ERROR [stderr] (default task-15)   at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

12:00:12,328 ERROR [stderr] (default task-15)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

12:00:12,328 ERROR [stderr] (default task-15)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

12:00:12,329 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)

12:00:12,380 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

12:00:12,381 ERROR [stderr] (default task-15)   at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

12:00:12,382 ERROR [stderr] (default task-15)   at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

12:00:12,382 ERROR [stderr] (default task-15)   at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

12:00:12,382 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)

12:00:12,383 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)

12:00:12,383 ERROR [stderr] (default task-15)   at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)

12:00:12,384 ERROR [stderr] (default task-15)   at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)

12:00:12,384 ERROR [stderr] (default task-15)   at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)

12:00:12,385 ERROR [stderr] (default task-15)   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

12:00:12,386 ERROR [stderr] (default task-15)   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

12:00:12,387 ERROR [stderr] (default task-15)   at java.lang.Thread.run(Thread.java:748)

12:00:12,391 ERROR [stderr] (default task-15) Caused by: java.net.ConnectException: Connection refused: connect

12:00:12,392 ERROR [stderr] (default task-15)   at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)

12:00:12,393 ERROR [stderr] (default task-15)   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

12:00:12,394 ERROR [stderr] (default task-15)   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

12:00:12,394 ERROR [stderr] (default task-15)   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

12:00:12,394 ERROR [stderr] (default task-15)   at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)

12:00:12,396 ERROR [stderr] (default task-15)   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

12:00:12,397 ERROR [stderr] (default task-15)   at java.net.Socket.connect(Socket.java:589)

12:00:12,398 ERROR [stderr] (default task-15)   at com.rabbitmq.client.impl.SocketFrameHandlerFactory.create(SocketFrameHandlerFactory.java:60)

12:00:12,398 ERROR [stderr] (default task-15)   at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:62)

12:00:12,398 ERROR [stderr] (default task-15)   at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:156)

12:00:12,398 ERROR [stderr] (default task-15)   at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1106)

12:00:12,399 ERROR [stderr] (default task-15)   at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1063)

12:00:12,434 ERROR [stderr] (default task-15)   at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1021)

12:00:12,434 ERROR [stderr] (default task-15)   at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1182)

12:00:12,435 ERROR [stderr] (default task-15)   at com.rabbitmq.jms.admin.RMQConnectionFactory.instantiateNodeConnection(RMQConnectionFactory.java:159)

12:00:12,435 ERROR [stderr] (default task-15)   ... 43 more

【问题讨论】:

    标签: java rabbitmq jms message-queue jndi


    【解决方案1】:

    是的,我刚刚发现主机名不能包含一些特殊字符,例如_。 然后我把它从 rabbitmq_server 删除到 rabbitmqserver 然后一切都很好了。

    希望像我一样遇到问题的人可以按照这个解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2010-10-28
      • 1970-01-01
      • 2017-07-14
      • 2018-02-07
      相关资源
      最近更新 更多