JBoss EAP 6.1上的Atmosphere和WebSocket

时间:2014-05-27 15:37:34

标签: java jboss websocket atmosphere

我尝试在JBoss EAP 6.1上部署标准 Atmosphere聊天示例(您可以找到源代码here和war here)。

Atmosphere应该在可用时处理WebSocket协议,或者在没有的情况下回退到长轮询。

聊天工作,但使用长轮询:JBoss似乎不支持 WebSocket ,但有(here)建议的方法通过添加Tomcat Native Connector(也称为APR)来启用它)。

我按照这些说明没有运气。

当我部署那场战争时会发生什么(由我自己建造并不会改变任何事情):

客户端:Google Chrome 35.0.1916.114

我加载页面后:

Invoking executeWebSocket atmosphere.js:3002
Using URL: ws://localhost:8080/atmosphere-chat/chat?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.2.0-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&Content-Type=application/json&X-atmo-protocol=true atmosphere.js:3002
WebSocket connection to 'ws://localhost:8080/atmosphere-chat/chat?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.2.0-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&Content-Type=application/json&X-atmo-protocol=true' failed: Error during WebSocket handshake: Unexpected response code: 501 atmosphere.js:1060
WebSocket not connected. atmosphere.js:3002
Websocket failed. Downgrading to Comet and resending atmosphere.js:3002
Websocket failed. Downgrading to Comet and resending atmosphere.js:3002

服务器端:JBoss EAP 6.1

部署已成功,但只要我加载网页,JBoss就会输出:

[org.atmosphere.container.JBossWebCometSupport] (http-/127.0.0.1:8080-7) HttpEvent is null, JBoss APR Not Properly installed
[org.atmosphere.cpr.AtmosphereFramework] (http-/127.0.0.1:8080-7) Failed using comet support: org.atmosphere.container.JBossWebCometSupport, error: JBoss failed to detect this is a Comet application because the APR Connector is not enabled. 
Make sure atmosphere-compat-jboss.jar is not under your WEB-INF/lib and You must use the atmosphere-native-runtime dependency in order to use native Comet Support
there is no context.xml under WEB-INF Is the NIO or APR Connector enabled?

有人有任何建议吗?

编辑:

正如我所写,我已按照此处的说明进行操作:https://github.com/Atmosphere/atmosphere/wiki/Installing-JBoss-WebSocket-Support,但没有任何改变。 我的主要障碍是安装APR。任何人都可以详细解释如何在Windows上安装它?

谢谢!

2 个答案:

答案 0 :(得分:2)

正如所说的here对Jboss上的websockets的支持从EAP 6.3开始。

但是我测试了你在Tomcat 8.0.15上链接的.war,它就像一个魅力,所以我认为你可以很容易地找到另一个支持web套接字的WS / AS。

希望这会有所帮助。

答案 1 :(得分:1)

您需要从JBoss服务器启用APR。 为此,请转到Jboss / Domain / configuration文件夹并编辑domain.xml文件。 找 make native =" false" to native =" true"。

如果这不起作用,那么对standalone.xml文件执行相同的操作。