我通过扩展TextWebSocketHandler和HttpSessionHandshakeInterceptor类来使用spring websocket。 websocket使用下载的tomcat(版本7.0.55)没有问题。但是在ubuntu(从apt-get安装)中使用tomcat作为服务(版本7.0.52),我在服务器启动期间遇到了以下问题。
错误DispatcherServlet:492 - 上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0'的bean时出错:无法解析对bean的引用... ...
经过一番搜索,我发现我要使用tomcat-embed-websocket.jar并下载 tomcat-embed-websocket-7.0.68.jar 并复制到项目lib文件夹。服务器启动成功。但是在尝试建立websocket连接时发生了以下问题。它说 引起:java.lang.ClassNotFoundException:org.apache.tomcat.util.security.ConcurrentMessageDigest 。
嵌套异常是org.springframework.web.socket.server.support.WebSocketHttpRequestHandler.handleRequest中的java.lang.NoClassDefFoundError:org / apache / tomcat / util / security / ConcurrentMessageDigest ...
无法找到解决方案。请帮忙。
答案 0 :(得分:0)
看起来你的tomcat7实例的版本低于你使用的lib( tomcat-embed-websocket-7.0.68.jar )。
尝试精确下载相同版本的tomcat: http://repo1.maven.org/maven2/org/apache/tomcat/tomcat/7.0.68/