0

我正在尝试运行 jetty 9.2.4 版本,但出现以下异常。相同的服务器设置在我的本地设置(mac)、登台环境(linux、ubutnu)上运行良好,但在我尝试设置的另一台服务器上不起作用。请提出什么可能是错的。我几乎一无所知。

:/WEBCHAT/jetty-distribution-9.2.4.v20141103# java -jar start.jar 2014-12-17 08:24:11.695:INFO::main: 日志记录已初始化 @1221ms 2014-12-17 08:24:11.947 :WARN:oejs.HomeBaseWarning:main: 这个 Jetty 实例不是从单独的 {jetty.base} 目录运行的,不推荐这样做。请参阅http://www.eclipse.org/jetty/documentation/current/startup.html上的文档 2014-12-17 08:24:12.848:INFO:oejs.Server:main: jetty-9.2.4.v20141103 2014-12-17 08:24:12.879:INFO:oejs.AbstractNCSARequestLog:main: 打开 /WEBCHAT/jetty -distribution-9.2.4.v20141103/logs/2014_12_17.request.log 2014-12-17 08:24:12.943:INFO:oejdp.ScanningAppProvider:main: 部署监视器 [file:/WEBCHAT/jetty-distribution-9.2.4 .v20141103/webapps/] 间隔 1 2014-12-17 08:24:29.188:WARN:oejuc.AbstractLifeCycle:main: FAILED org.eclipse.jetty.annotations.ServletContainerInitializersStarter@29b95cf5: java.lang.NoClassDefFoundError: org/eclipse /jetty/websocket/WebSocket$OnTextMessage java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/WebSocket$OnTextMessage at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java: 800) 在 java.security.SecureClassLoader。defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader .java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at org .eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:510) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader .java:403)URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader. java:354) 在 org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:510) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441) 在 org.eclipse.jetty.webapp .WebAppClassLoader.loadClass(WebAppClassLoader.java:403)URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader. java:354) 在 org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:510) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441) 在 org.eclipse.jetty.webapp .WebAppClassLoader.loadClass(WebAppClassLoader.java:403)webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)

4

1 回答 1

1

该类org/eclipse/jetty/websocket/WebSocket$OnTextMessage不是 Jetty 9 的一部分。

那是一个 Jetty 7 和 Jetty 8 临时类(这些类存在于 Jetty 中的 WebSocket 演变过程中,从最早的草案到几乎完整和最终确定的 WebSocket 规范。)

Jetty 9 采用了最终确定的 RFC-6455 和 JSR-356 规范并实施了它们。

这意味着对 WebSocket、本机 API、标准 API、协议、新客户端规范、新服务器规范以及围绕 WebSocket 的所有最新附加规范(例如各种 WebSocket 扩展)进行大规模修复。

你不能使用org/eclipse/jetty/websocket/WebSocket$OnTextMessage在 Jetty 9 中开发的 webapp,那是行不通的。

于 2014-12-17T20:36:07.973 回答