我不能让Jetty8 etc / jetty-webapps.xml extractWars =“false”工作

时间:2013-04-09 00:40:18

标签: jetty jetty-8

我正在将我的应用程序从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文件中以使其工作?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

鲍勃,

错误跟踪器和所有doco for jetty-7,8和9都在Eclipse上找到,在这里:http://www.eclipse.org/jetty/

IIRC,在jetty-6中,尽管已将extractWar设置为false,但是封闭式jetty正在提取并复制WEB-INF目录以克服Windows下的热重新部署问题。因此,即使你认为自己没有完全放弃战争,至少部分战争仍在进行中。

使用jetty-7,8,9我们精确地遵守extractWar,copyWebInf,copyWebDir的设置。默认是提取 - servlet规范的每次迭代都鼓励提取,因为有更多的功能在解压缩的战争中真正起作用。

相关问题