java - 线程“Thread-2”java.lang.VerifyError 中的 Spark 服务异常
问题描述
我正在使用以下堆栈跟踪调查以下 java.lang.VerifyError.Exception:
Exception in thread "Thread-2" java.lang.VerifyError: class org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection overrides final method toString.()Ljava/lang/String;
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.<init>(WebSocketUpgradeFilter.java:136)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.<init>(WebSocketUpgradeFilter.java:131)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.configureContext(WebSocketUpgradeFilter.java:71)
at spark.embeddedserver.jetty.websocket.WebSocketServletContextHandlerFactory.create(WebSocketServletContextHandlerFactory.java:50)
at spark.embeddedserver.jetty.EmbeddedJettyServer.ignite(EmbeddedJettyServer.java:123)
at spark.Service.lambda$init$2(Service.java:549)
at java.lang.Thread.run(Unknown Source)
依赖关系
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty.websocket/websocket-server -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-server</artifactId>
<version>9.4.2.v20170220</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.4.2.v20170220</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sparkjava/spark-core -->
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.5.5</version>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-debug-tools</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-template-velocity</artifactId>
<version>2.3</version>
</dependency>
我尝试将相同版本的 jett-server 版本与 spark 一起使用,但我得到了相同的结果。任何在哪里寻找的想法都会有所帮助。
解决方案
您有不同版本的 Jetty 库。
处理您的 websocket 代码的库比您的服务器旧。
运行$ mvn dependency:tree
,您将看到混合版本的来源。
推荐阅读
- angular - Google Charts (ng2-google-charts) - 自定义工具提示 - HTML 被附加到工具提示而不是替换它
- node.js - TypeScript 和 NextJs 中跨文件的多个单例实例
- r - 将我的空间坐标转换为 R 中的 sf 对象
- laravel - 无法重新启动 mysql.service:从 18.4 升级后,单元 mysql.service 在 Ubuntu 20.04 中被屏蔽
- r - 重组行上的数据以减少 R 中数据帧中的 NA 数量
- node.js - 如何在没有 Express 等的情况下“运行”HTML 网页
- node.js - 在应用程序启动节点 js 之前从 Vault 加载所有属性
- ios - 使用 Xcode 12 xctrace 命令行工具为 iOS 自动分析
- python - 没有使用 Django 的 FileSystemStorage 创建“媒体”文件夹。如果手动制作文件也不会保存
- sql - 在 PostgreSQL 中基于多个字段更改(包括“不可见”)对行进行编号