1

问题: glassfish V3.1.2.2 和 grizzly-websockets v1.9.56 中的Websockets 和 WebContainer HttpSession

参考链接:http: //java.net/jira/browse/GRIZZLY-1289

我正在使用带有 glassfish 服务器的 web-scoket。所以 webscoket 使用 glassfish V3.1.2.2 和 grizzly-websockets v1.9.56 。

我完成了创建 webscoket 并使用了我们的应用程序。但我遇到了一个问题,例如:

我使用会话,并使用 webscoket 的“DefaultWebSocket”获取会话。但我没有得到当前会话(我得到新的或 null 不是当前的)。

代码 :

@Override
    public WebSocket createWebSocket(ProtocolHandler protocolHandler,
            final WebSocketListener... listeners) {

DefaultWebSocket defaultWebSocket = new DefaultWebSocket(protocolHandler,listeners);

HttpSession httpSession = defaultWebSocket.getRequest().getSession(false);

return defaultWebSocket ;
}

“httpSession” 对象为 null 或 new Not current 。

帮我。

4

1 回答 1

2

下载 glassfish 3.1.2.2,使用 grizzly-websockets-1.9.50.jar(下载 java.net/jira/browse/GRIZZLY-1289)对其进行修补,例如 $cp ./grizzly-websockets-1.9.50-fix。 jar glassfish3/glassfish/modules/grizzly-websockets.jar

启动 glassfish 3.1.2.2 $glassfish3/bin/asadmin 启动域

为 http-listener-1 启用 websockets $glassfish3/bin/asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.websockets-support-enabled=true

然后在浏览器中运行您的应用程序。

谢谢,

于 2013-02-23T09:41:11.807 回答