Java Tomcat/websocket响应错误404
我已经使用tomcat 8.0.027和java jdk 7在mac上本地开发了一个网站。该网站依赖WebSocket,在本地运行良好。当我将站点部署到虚拟私有java服务器时,我得到一个错误404。websocket的url是ws://www.modelstudio3d.com/handler,我的站点是www.modelstudio3d.com。我已经尝试在主机名后面附加:8080,这会将错误更改为connection Rejected。将url更改为../handlerx也会生成拒绝连接。我已经检查过我没有在我的war文件中打包额外的websocket jar(据我所知还没有)。我的服务器正在运行Tomcat8.0.22和JDK7。我的ISP无法提供任何指导 我的客户代码是Java Tomcat/websocket响应错误404,java,tomcat,websocket,Java,Tomcat,Websocket,我已经使用tomcat 8.0.027和java jdk 7在mac上本地开发了一个网站。该网站依赖WebSocket,在本地运行良好。当我将站点部署到虚拟私有java服务器时,我得到一个错误404。websocket的url是ws://www.modelstudio3d.com/handler,我的站点是www.modelstudio3d.com。我已经尝试在主机名后面附加:8080,这会将错误更改为connection Rejected。将url更改为../handlerx也会生成拒绝连接。
this.getWebSocketURI = function () {
var loc = window.location, wsUri;
if (loc.protocol === "https:") {
wsUri = "wss:";
} else {
wsUri = "ws:";
console.log("Websocket is not secure.");
}
wsUri += "//" + loc.host;
wsUri += loc.pathname + "handler";
console.log("wsUri" + wsUri);
return wsUri;
};
this.init = function () {
var self = this;
self.websocket = new WebSocket(self.getWebSocketURI());
...
服务器代码中有趣的部分是
@ServerEndpoint(value = "/handler",
configurator = GetHttpSessionConfigurator.class)
public class WebSocket {
我在这里读到一些关于Apache位置筛选器的信息,该筛选器可能会通过将ws:重定向到http:而产生干扰,但不知道它驻留在哪里或如何更改它。我的托管服务最终同意调查该问题。他们说mod_proxy_wstunnel没有启用,也不能启用。如果您需要使用WebSocket,请不要使用Mocha主机。我还没有发现您的问题,但我知道WebSocket的实现自您早期版本的Tomcat以来发生了重大变化。我建议切换到最新版本,尤其是8.5.x。这将是一个棘手的问题。我以前使用过这个托管服务,你只能从他们的版本菜单中选择。我也尝试过删除配置程序,但没有效果。