微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Wildfly 10和RabbitMQ JDNI配置的主机名问题

如何解决Wildfly 10和RabbitMQ JDNI配置的主机名问题

我正在关注本文档,以使用RabbitMQ为Wildfly 10配置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. 如果我将值设置为主机名(已经在我的主机文件中映射了IP地址)=>它将始终创建与本地主机的连接。

以前有人遇到过这个问题吗?

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,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,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

解决方法

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

希望有人得到像我这样的问题,可以按照以下步骤解决。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。