Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
glassfish 4.0 Java EE7中WebSocket中的SSL_Java_Ssl_Glassfish_Websocket - Fatal编程技术网

glassfish 4.0 Java EE7中WebSocket中的SSL

glassfish 4.0 Java EE7中WebSocket中的SSL,java,ssl,glassfish,websocket,Java,Ssl,Glassfish,Websocket,我正在glassfish 4.0中开发WebSocket应用程序。当不使用SSL时,一切都正常工作,但当使用SSL时,我无法使事情正常工作 我使用带注释的Java对象作为服务器: @ServerEndpoint("/websocket/{sessionID}") public class WebSocketServerEndPoint {...} 在客户端,我使用以下javascript: var webSocket = new WebSocket('wss://domain.com:81

我正在glassfish 4.0中开发WebSocket应用程序。当不使用SSL时,一切都正常工作,但当使用SSL时,我无法使事情正常工作


我使用带注释的Java对象作为服务器:

@ServerEndpoint("/websocket/{sessionID}")
public class WebSocketServerEndPoint {...}

在客户端,我使用以下javascript:

var webSocket = new WebSocket('wss://domain.com:8181/websocketserver/websocket/sessionXXX');

在部署描述符web.xml中,我要确保应用程序不能通过ssl以外的其他方式访问:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected resource</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>GET</http-method>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    <!-- deny all methods other than GET in all url -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>protected</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method-omission>GET</http-method-omission>
        </web-resource-collection>
        <auth-constraint/>
    </security-constraint>

有没有想过为什么ssl在使用WebSocket时不起作用,但在使用https时效果很好?

URL末尾的斜杠会有帮助?如下所示:var webSocket=newwebsocket('wss://domain.com:8181/websocketserver/websocket/sessionXXX/');这不是问题所在,因为当我使用不带ssl的websocket时,我会写:newWebSocket('ws://domain.com:8080/websocketserver/websocket/sessionXXX');没有斜杠。您是否尝试为SSL附加斜杠?对于SSL,它可能是一个解决方案。即使它对非SSL连接不使用斜杠,也可能对SSLHi不起作用,只是为了确保我尝试在末尾附加反斜杠。结果是一样的。服务器根本不响应,在客户端,readystate为3,这意味着连接已关闭或无法打开。
https://domain.com:8181/websocketserver/index.html