我正在将我的应用程序从 Jetty 7 迁移到 Jetty 8,但进展并不顺利。战斗目前在 etc/jetty-webapps.xml。在此迁移之前,我们的配置始终将此值设置为“false”
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Ref id="DeploymentManager">
<Call id="webappprovider" name="addAppProvider">
<Arg>
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
<Set name="monitoredDirName"><Property name="jetty.home" default="." />/webapps</Set>
<Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set>
<Set name="scanInterval">1</Set>
<Set name="contextXmlDir"><Property name="jetty.home" default="." />/contexts</Set>
<Set name="extractWars">false</Set>
</New>
</Arg>
</Call>
</Ref>
当我尝试 bin/jetty.sh 将此值设置为“false”开始时,Jetty 会发出异常,例如...
2013-04-08 17:33:03.380:INFO:oejd.DeploymentManager:Deployable added: /Users/bobk/work/workspace/DM_Server/build/distributions/device-management-1.6.5-DEVELOP-dev/webapps/root.war
2013-04-08 17:33:04.526:WARN:oejw.WebAppClassLoader:EXCEPTION
java.lang.IllegalArgumentException: !file: jar:file:/Users/bobk/work/workspace/DM_Server/build/distributions/device-management-1.6.5-DEVELOP-dev/webapps/root.war!/WEB-INF/lib/guava-14.0.1.jar
at org.eclipse.jetty.webapp.WebAppClassLoader.addClassPath(WebAppClassLoader.java:245)
at org.eclipse.jetty.webapp.WebAppClassLoader.addJars(WebAppClassLoader.java:282)
blah...blah...blah...
...对于我的 WAR 的 WEB-INF/lib 目录中的每个 Jar 文件。如果我将 etc/jetty-webapps.xml 中的 extractWars 的值从“false”更改为“true”,我可以让 jetty.sh 开始成功加载我的 webapp。不过,就像我说的那样,自 Jetty 6 以来,这个值一直是“错误的”,令人沮丧的是它不再起作用。
“假”甚至是合法的设置吗?如果是,我还需要设置、取消设置、包含在 etc/ 目录、jetty.conf 或 start.ini 文件中以使其正常工作吗?
任何帮助是极大的赞赏。