2017-02-27 140 views
0

我已經在我的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:但不知道那裏駐留或如何改變它。

+0

我沒有發現你的問題,但我知道自從你的早期版本的Tomcat以來,WebSocket的實現已經發生了很大的變化。我建議切換到最新版本,特別是8.5.x. –

+0

這將是棘手。我以前使用過這個託管服務,你只能從他們的版本菜單中選擇。 – brtip

+0

我也嘗試刪除配置器,沒有任何效果。 – brtip

回答

0

我的託管服務終於同意調查問題。他們說mod_proxy_wstunnel未啓用,無法啓用。如果您需要使用網絡套接字,請勿使用摩卡主機。