jetty 9符号链接爆炸战争

时间:2013-05-10 04:58:33

标签: jetty

我刚从8开始上升到Jetty 9并且有一个奇怪的问题。我的开发环境是一场爆炸性的战争,所以我只需将一个符号链接(ROOT)放入我的jetty / webapps目录中,指向我爆炸的战争。这对Jetty 8来说效果很好,但Jetty 9似乎失败了。

首先,根据文档,符号链接现在是“root”。但当我点击我的服务器'/'时,它给了我一个404而且这个:

Error 404 - Not Found.

No context on this server matched or handled this request.
Contexts known to this server are:
/war ---> o.e.j.w.WebAppContext@613714d3{/war,file:/home/george/git/s/web_app/war/,AVAILABLE}{/home/george/git/s/web_app/war}

意思是我可以在“/ war”下找到我的应用程序而不仅仅是“/”。古怪。

1 个答案:

答案 0 :(得分:3)

这是由于一系列的变化,主要指向Java 7的使用以及对最新Servlet规范的要求。

很容易解决你的情况。

  1. 不要使用OS符号链接。
  2. 使用以下内容创建名为${jetty.home}/webapps/mywebapp.xml的文件
  3. <?xml version="1.0"  encoding="ISO-8859-1"?>
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
          "http://www.eclipse.org/jetty/configure_9_0.dtd">
    
    <Configure class="org.eclipse.jetty.webapp.WebAppContext">
      <Set name="contextPath">/</Set>
      <Set name="war">/home/george/git/s/web_app/war/</Set>
    </Configure>
    

    所有完成后,您现在基本上使用Jetty Deployable XML DescriptorcontextPath设置为/(也称为Servlet Spec Root)并指向您要部署的战争。