【问题标题】:ConcurrentMessageDigest Class Not Found ExceptionConcurrentMessageDigest 类未找到异常
【发布时间】:2026-01-11 22:30:01
【问题描述】:

我通过扩展 TextWebSocketHandler 和 HttpSessionHandshakeInterceptor 类来使用 spring websocket。使用下载的 tomcat(版本 7.0.55)使用 websocket 没有问题。但是使用 tomcat 作为服务(版本 7.0.52),在 ubuntu(从 apt-get 安装)中,我在服务器启动期间遇到了以下问题。

错误 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 连接时出现以下问题。它说 Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.security.ConcurrentMessageDigest

嵌套异常是 java.lang.NoClassDefFoundError: org/apache/tomcat/util/security/ConcurrentMessageDigest at org.springframework.web.socket.server.support.WebSocketHttpRequestHandler.handleRequest...

找不到解决办法。请帮忙。

【问题讨论】:

  • 我是隐形的吗...!

标签: tomcat spring-websocket


【解决方案1】:

看起来您的 tomcat7 实例的版本确实低于您使用的 lib (tomcat-embed-websocket-7.0.68.jar)。

尝试下载完全相同版本的tomcat: http://repo1.maven.org/maven2/org/apache/tomcat/tomcat/7.0.68/

【讨论】:

  • 这是个老问题。抱歉,我现在无法测试它。那时候没解决这个问题。下次会试试你的建议。谢谢!