【发布时间】: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;
}
我的问题是: 在这种配置下,
- 如果我设置的值为 IP 地址 => 没问题
- 如果我将值设置为主机名(已在我的 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