我在WildFly 8.0.0.Final上连接到JMS时​​遇到问题。

我正在使用一个独立的Java程序,该源代码是WildFly Quickstart示例中 HelloWorldJMSClient.java 的精确副本。

我遵循了provided instructions,并添加了quickstartUser并配置了JMS

从管理控制台中,我可以看到RemoteConnectionFactory

和创建的测试队列

我以独立的完整配置启动WildFly

服务器启动,并且貌似成功完成了所有步骤,包括JMS(HornetQ)绑定:

C:\WildFly8\wildfly-8.0.0.Final\bin\standalone.bat -c standalone-full.xml
Calling "C:\WildFly8\wildfly-8.0.0.Final\bin\standalone.conf.bat"
Setting JAVA property to "C:\Program Files\Java\jdk1.8.0_05\bin\java"
Detected server admin port: 9990
Detected server http port: 8080
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "C:\WildFly8\wildfly-8.0.0.Final"

  JAVA: "C:\Program Files\Java\jdk1.8.0_05\bin\java"

  JAVA_OPTS: "-XX:+UseCompressedOops -Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MaxPermSize=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"

===============================================================================

10:39:36,154 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
10:39:37,741 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
10:39:37,842 INFO  [org.jboss.as] (MSC service thread 1-6) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
10:39:42,278 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
10:39:42,328 INFO  [org.xnio] (MSC service thread 1-5) XNIO version 3.2.0.Final
10:39:42,337 INFO  [org.xnio.nio] (MSC service thread 1-5) XNIO NIO Implementation Version 3.2.0.Final
10:39:42,400 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 36) JBAS010280: Activating Infinispan subsystem.
10:39:42,402 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 47) JBAS011800: Activating Naming Subsystem
10:39:42,396 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 52) JBAS013171: Activating Security Subsystem
10:39:42,428 INFO  [org.jboss.as.jacorb] (ServerService Thread Pool -- 37) JBAS016300: Activating JacORB Subsystem
10:39:42,454 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 56) JBAS015537: Activating WebServices Extension
10:39:42,523 INFO  [org.jboss.as.security] (MSC service thread 1-2) JBAS013170: Current PicketBox version=4.0.20.Final
10:39:42,577 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 43) JBAS012615: Activated the following JSF Implementations: [main]
10:39:42,661 INFO  [org.jboss.as.naming] (MSC service thread 1-1) JBAS011802: Starting Naming Service
10:39:42,666 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-1) JBAS015400: Bound mail session [java:jboss/mail/Default]
10:39:42,776 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-1) JBAS017502: Undertow 1.0.0.Final starting
10:39:42,776 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 55) JBAS017502: Undertow 1.0.0.Final starting
10:39:42,819 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-1) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.3.Final)
10:39:43,053 INFO  [org.jboss.remoting] (MSC service thread 1-4) JBoss Remoting version 4.0.0.Final
10:39:43,319 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 31) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
10:39:43,355 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-6) JBAS010417: Started Driver service with driver-name = h2
10:39:43,646 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 55) JBAS017527: Creating file handler for path C:\WildFly8\wildfly-8.0.0.Final/welcome-content
10:39:43,707 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-8) JBAS017525: Started server default-server.
10:39:43,715 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-8) JBAS017531: Host default-host starting
10:39:43,874 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-5) JBAS017519: Undertow HTTP listener default listening on /127.0.0.1:8080
10:39:44,130 WARN  [org.jboss.as.messaging] (MSC service thread 1-4) JBAS011600: AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
10:39:44,377 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-8) JBAS015012: Started FileSystemDeploymentService for directory C:\WildFly8\wildfly-8.0.0.Final\standalone\deployments
10:39:44,581 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221000: live server is starting with configuration HornetQ Configuration (clustered=false,backup=false,sharedStore=true,journalDirectory=C:\WildFly8\wildfly-8.0.0.Final\standalone\data\messagingjournal,bindingsDirectory=C:\WildFly8\wildfly-8.0.0.Final\standalone\data\messagingbindings,largeMessagesDirectory=C:\WildFly8\wildfly-8.0.0.Final\standalone\data\messaginglargemessages,pagingDirectory=C:\WildFly8\wildfly-8.0.0.Final\standalone\data\messagingpaging)
10:39:44,582 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221006: Waiting to obtain live lock
10:39:44,729 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221013: Using NIO Journal
10:39:44,748 WARN  [jacorb.codeset] (MSC service thread 1-2) Warning - unknown codeset (Cp1252) - defaulting to ISO-8859-1
10:39:45,033 INFO  [io.netty.util.internal.PlatformDependent] (ServerService Thread Pool -- 58) Your platform does not provide complete low-level API for accessing direct buffers reliably. Unless explicitly requested, heap buffer will always be preferred to avoid potential system unstability.
10:39:45,049 INFO  [org.jboss.as.jacorb] (MSC service thread 1-2) JBAS016330: CORBA ORB Service started
10:39:45,161 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221043: Adding protocol support CORE
10:39:45,286 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221043: Adding protocol support AMQP
10:39:45,299 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
10:39:45,305 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221043: Adding protocol support STOMP
10:39:45,391 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221034: Waiting to obtain live lock
10:39:45,392 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221035: Live Server Obtained live lock
10:39:45,472 INFO  [org.jboss.as.jacorb] (MSC service thread 1-3) JBAS016328: CORBA Naming Service started
10:39:45,890 INFO  [org.jboss.ws.common.management] (MSC service thread 1-5) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.2.3.Final
Connected to server
10:39:45,958 INFO  [org.jboss.messaging] (MSC service thread 1-4) JBAS011615: Registered HTTP upgrade for hornetq-remoting protocol handled by http-acceptor-throughput acceptor
10:39:45,961 INFO  [org.jboss.messaging] (MSC service thread 1-1) JBAS011615: Registered HTTP upgrade for hornetq-remoting protocol handled by http-acceptor acceptor
10:39:46,254 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221007: Server is now live
10:39:46,254 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221001: HornetQ Server version 2.4.1.Final (Fast Hornet, 124) [c42f74fe-ddcf-11e3-9d67-07b9140cdda2]
10:39:46,272 INFO  [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ221003: trying to deploy queue jms.queue.testQueue
10:39:46,278 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 58) JBAS011601: Bound messaging object to jndi name queue/test
10:39:46,279 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 58) JBAS011601: Bound messaging object to jndi name java:jboss/exported/jms/queue/test
10:39:46,300 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 60) JBAS011601: Bound messaging object to jndi name java:/ConnectionFactory
10:39:46,301 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 59) JBAS011601: Bound messaging object to jndi name java:jboss/exported/jms/RemoteConnectionFactory
10:39:46,424 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-2) JBAS010406: Registered connection factory java:/JmsXA
10:39:46,515 INFO  [org.hornetq.ra] (MSC service thread 1-2) HornetQ resource adaptor started
10:39:46,516 INFO  [org.jboss.as.connector.services.resourceadapters.ResourceAdapterActivatorService$ResourceAdapterActivator] (MSC service thread 1-2) IJ020002: Deployed: file://RaActivatorhornetq-ra
10:39:46,518 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-2) JBAS010401: Bound JCA ConnectionFactory [java:/JmsXA]
10:39:46,518 INFO  [org.jboss.as.messaging] (MSC service thread 1-8) JBAS011601: Bound messaging object to jndi name java:jboss/DefaultJMSConnectionFactory
10:39:46,636 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
10:39:46,637 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
10:39:46,637 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 12523ms - Started 216 of 264 services (90 services are lazy, passive or on-demand)
10:40:35,457 INFO  [org.jboss.ejb.client] (XNIO-1 task-3) JBoss EJB Client version 2.0.0.Final

当我启动Java程序时,出现以下错误:
May 22, 2014 10:57:29 AM org.xnio.Xnio <clinit>
INFO: XNIO version 3.2.0.Final
May 22, 2014 10:57:29 AM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.2.0.Final
May 22, 2014 10:57:30 AM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version (unknown)
May 22, 2014 10:57:30 AM HelloWorldJMSClient main
INFO: Attempting to acquire connection factory "jms/RemoteConnectionFactory"
May 22, 2014 10:57:35 AM HelloWorldJMSClient main
SEVERE: Failed to connect to any server. Servers tried: [http-remoting://127.0.0.1:8080
(Operation failed with status WAITING after 5000 MILLISECONDS)]

当我在调试器上运行它时,我可以看到该程序获取initial JNDI context,然后在第一个lookup上失败。

因此,似乎期望//127.0.0.1:8080上的服务器的程序没有看到服务器在此URL上运行。

我尝试将URL更改为//localhost:8080,但没有任何区别。

我很可能在我根本无法察觉的地方出现愚蠢的错字。

无论如何,我如何进一步解决这种情况?

澄清(0523/14):

当我在浏览器中打开localhost:8080时,我会看到WildFly的欢迎页面。然后,我可以进入管理面板。这就是与前两个JNDI / JMS相关的屏幕截图的获取方式。

netstat运行服务器:
  TCP    127.0.0.1:8080         0.0.0.0:0              LISTENING

无论是从命令行还是从IntellJ IDEA启动服务器,此结果都是相同的。

网络流量

我相信这是一个相关的部分:

Link to a better view.

更新(2014年5月28日)

正如在Wildfly's Forum上指向我的那样,日志中的以下行(我有点怀疑)应该发出一个红旗:

2014年5月22日,上午10:57:30 org.jboss.remoting3.EndpointImpl
INFO:JBoss Remoting版本(未知)

其他信息(不确定是否相关)我正在使用以下jar手动解决依赖关系:

最佳答案

同意@Iain。 netstat -nab将列出所有端口及其所有者进程。如果将127.0.0.1:8080或0.0.0.0:8080列为“侦听”,我可能会启动Wireshark并嗅探8080 tcp以确保您的wildfly进程确实在应答。听起来您好像在寻找基本的http内容,wireshark大部分会为您解码。

毋庸置疑,除非绝对一切都坏了,并且需要立即修复,而现在却要修复,否则不应该在生产部署上/针对生产部署进行此操作。解决产品问题后,您需要查看测试和升级过程。

检查tcp / http连接设置诊断的事项:

  • Server不仅仅讨厌您的客户端。使用备用计算机和已知的工作客户端(或有点相似的客户端),连接到服务器。类似的客户端可以是浏览器,也可以是netcat / telnet。如果这样做有效,则表明您的客户端已损坏,或者您的服务器明确拒绝了被测客户端。
  • 服务器正在侦听。赢:netstat -nab,许多* nix:netstat -nlp。查找您的服务器进程的IP:Port LISTENING行。也许其他原因窃取了您的侦听端口,或者它处于TIMEWAIT中,因为崩溃的服务器从未关闭过它。
  • 服务器正在接收传入的连接请求。在服务器端,Windows:wireshark,nix:wireshark / tcpdump -i <interface> 'port <listenport>'。在侦听端口上查找来自客户端的传入SYN数据包,然后服务器进行回复。没有传入的数据包意味着被网络配置或防火墙等阻止,这使其成为网络调试问题。通常,没有传出数据包意味着服务器已损坏或配置错误。
  • 客户端收到服务器的响应。确认服务器已完成tcp连接但客户端未发出http命令后,请使用相同的步骤验证客户端计算机是否接收到数据包。如果未收到服务器发送的数据包,则是网络调试问题。如果是这样,那么您的客户就坏了。
  • 服务器完成协议响应。客户端发送完整的请求,例如“GET / HTTP / 1.1 \ r \ n \ r \ n”,服务器回复“HTTP / 1.1 200 OK”。
  • 服务器可能会在某些客户端不希望使用二进制握手时回复一些握手二进制文件,例如,如果您忘记了客户端上的SSL;这是一个非常常见的错误。 SSL协议解码通常涉及将客户机或服务器上的密钥转储出去,并将其复制到wirehark中-在这一点上,我通常启动gdb / jdb / dtrace并转储字符串,然后再进入ssl写操作以及从ssl读操作返回。之所以可行,是因为该连接已经建立并且可靠,因此除非它正在做一些有趣的事情和濒临死亡,否则请不要进行网络分析并开始常规的调试过程。

  • 遇到困难或花了一个小时没有进展时可以尝试的简单方法:
  • 您阅读了手册吗?迟到总比不到好。
  • 更改服务器侦听端口。 10k-12k范围内的任何事物都不太可能与任何事物发生冲突。
  • 将客户端和服务器的可调线程/进程减少到最小,以重现该错误。如果错误消失了,那么您将需要寻找一些东西。如果不是这样,则在调试器中切换线程上下文较少时,调试起来会容易得多。
  • 有支持合同吗?询问供应商。描述您所做的诊断,通常会跳过那些一直工作到一到两次的故障,直到无法为它们提供一些背景信息为止。就像问一个Stackexchange问​​题一样,只有您要付钱。如果他们不提供及时的支持,请检查在相同的价格点是否有更好的选择,然后重新评估您的业务需求;与现在运行的糟糕软件相比,一款无法使用的优秀软件的实用性和价值明显不足。
  • 10-07 19:32
    查看更多