我有Jetty jetty-9.2.3.v20140905。
我的理解是,lib/jar或lib/ext中的jars会自动出现在类路径上,但这可能是jetty 8的旧行为。
我正在尝试部署具有websockets的webapp。将我的部署的WAR文件放置在webapps目录中后,jetty一直抱怨找不到坐落在jetty/lib目录中的jars(jetty-http、jetty-io、jetty-security、jetty-server、jetty-servlet、jetty-util是我的webapp需要但无法找到的那些)。
当我执行--module-ext时,也不会选择放置在lib/ext中的jars。
如何解决这个问题?
编辑原始问题以回答下面的答案,我已经尝试启用服务器模块,其server.mod文件包含以下行:
[lib]
lib/servlet-api-3.1.jar
lib/jetty-schemas-3.1.jar
lib/jetty-http-${jetty.version}.jar
lib/jetty-server-${jetty.version}.jar
lib/jetty-xml-${jetty.version}.jar
lib/jetty-util-${jetty.version}.jar
lib/jetty-io-${jetty.version}.jar
从命令行中,我执行以下操作:
java -jar start.jar --module=server jetty.port=8182
结果是:
2014-10-30 15:26:13.907:WARN:oejuc.AbstractLifeCycle:main: FAILED
org.eclipse.jetty.annotations.ServletContainerInitializersStarter@2635068e:
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
org.eclipse.jetty.server.Handler就在我的jetty/lib目录下的jetty-server jar包中。
也许jetty.version或jetty.base变量设置不正确?
当我执行一个
--list-classpath
我看到了lib目录中的所有jar文件。
{jetty.home}/lib/
下的所有 jar 包都在服务器类路径中。而且强制这样做也没有任何意义。请更新你的问题,更具体地说明你想要达到什么目标,比如“我想部署一个带有 JSP 和 WebSockets 的 Web 应用程序”。 - Joakim Erdfelt