Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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
Java tomcat7 spring boot应用程序中的WebSocket_Java_Spring_Tomcat_Websocket - Fatal编程技术网

Java tomcat7 spring boot应用程序中的WebSocket

Java tomcat7 spring boot应用程序中的WebSocket,java,spring,tomcat,websocket,Java,Spring,Tomcat,Websocket,我有一个SpringBootWar文件,正在部署到Tomcat7.0.78实例。web应用程序启动正常,但web套接字不工作。它们在嵌入式tomcat环境中运行良好,例如运行/gradlew bootRun 我在chrome控制台中遇到的错误是: angular.js:14525 Possibly unhandled rejection: Whoops! Lost connection to http://localhost:8080/websock 我尝试将tomcat连接器设置为使用HTT

我有一个SpringBootWar文件,正在部署到Tomcat7.0.78实例。web应用程序启动正常,但web套接字不工作。它们在嵌入式tomcat环境中运行良好,例如运行
/gradlew bootRun

我在chrome控制台中遇到的错误是:

angular.js:14525 Possibly unhandled rejection: Whoops! Lost connection to http://localhost:8080/websock
我尝试将tomcat连接器设置为使用HTTP11NIO协议,但似乎没有效果

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
       connectionTimeout="20000"
       redirectPort="8443" />      
我没有在web.xml中编辑任何内容,只更改了server.xml中的连接器协议

更新: 我的问题的一部分是我的连接尝试在前面有一个斜线,例如。 $stomp.connect('/websock'),因此我将其更改为$stomp.connect('websock')。这在windows安装的tomcat上运行良好,但在ubuntu安装上不起作用。我必须在javascript中显式地告诉它连接到,但在尝试连接到web套接字时会出现后续错误:

webSocket connection to 'ws://localhost:8080/websock/940/qdb1xkkp/websocket' failed: Error during WebSocket handshake: Unexpected response code: 404

我的问题是,在通过stomp连接到套接字之前,我必须获得正确的基本url:

var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
$stomp.connect(baseUrl + '/websock', {})

正在查找我找到的堆栈跟踪:。。。这听起来很可能是
org.apache.tomcat.websocket
javax.websocket
之间的版本/实现冲突。你是对的。我曾尝试添加javax.websocket,但它导致了更多的问题。问题的一部分是我的连接路径错误,但我仍然有问题。现在更新答案。
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
$stomp.connect(baseUrl + '/websock', {})