我已經在我的mac上使用tomcat 8.0.027和java jdk 7在本地開發了一個網站。該網站依賴於websockets並且在本地運行良好。當我將該站點部署到虛擬專用Java服務器時,出現404錯誤。websocket的URL是ws://www.modelstudio3d.com/handler,我的網站是www.modelstudio3d.com。我試着追加:8080到主機名,這改變了連接拒絕的錯誤。將url更改爲../handlerx也會生成拒絕的連接。我檢查過我沒有在我的war文件中打包額外的websocket jar(我沒有我能說的那麼遠)。我的服務器運行的是tomcat 8.0.22和JDK 7.我的ISP無法提供任何指導。Tomcat/websocket迴應錯誤404
我的客戶端代碼
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 {
我讀過的東西在這裏瞭解可能通過重定向WS被幹擾Apache的位置過濾器:以http:但不知道那裏駐留或如何改變它。
我沒有發現你的問題,但我知道自從你的早期版本的Tomcat以來,WebSocket的實現已經發生了很大的變化。我建議切換到最新版本,特別是8.5.x. –
這將是棘手。我以前使用過這個託管服務,你只能從他們的版本菜單中選擇。 – brtip
我也嘗試刪除配置器,沒有任何效果。 – brtip