在ROOT下部署webapp - index.html不显示

时间:2015-05-27 23:58:19

标签: java tomcat servlets web-deployment

我正在使用tomcat7并且有一个需要在ROOT下部署的小型Java应用程序。这样做的原因是客户端无法在此时指定webapp的正确上下文路径。

我在这个webapp中有一个index.html,我的问题是,当我在webapp名称下部署应用程序时 - $ {catalina_home} / mywebapp - 当我导航到{{3}时,index.html呈现没有问题}。

但是,当我在ROOT下部署它时 - $ {catalina_home} / ROOT - 当我导航到http://localhost:8080/mywebapp时,index.html里面没有渲染。找不到404错误。这与覆盖tomcat的默认页面有什么关系吗?

我的web.xml:

<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/</param-value>
</context-param>

...
<servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

...

有人可以解释为什么会这样吗?

提前致谢。

更新:我在此stackoverflow http://localhost:8080/中看到问题可能是我的过滤器说/ *下的任何内容应该转到servlet。我试图为.html页面设置一个默认的servlet,但那还没有帮助......

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

2 个答案:

答案 0 :(得分:0)

如何将应用部署为ROOT?如果打包为war文件,要部署为ROOT,请将war文件更改为ROOT.war并将index.html置于ROOT文件夹下。还要检查WEB-INF下的web.xml,将welcom页面设置为index.html,如下所示:

<welcome-file-list>
<welcome-file>
    index.html
</welcome-file>
</welcome-file-list>

答案 1 :(得分:0)

我在这里找到了答案 - http://docs.jboss.org/resteasy/docs/3.0.2.Final/userguide/html_single/

“将Resteasy作为Servlet运行的缺点是,您不能将.html和.jpeg文件等静态资源放在与JAX-RS服务相同的路径中.Resteasy允许您作为过滤器运行。如果是JAX在请求的URL下找不到-RS资源,Resteasy将委托回基本servlet容器来解析URL。“

我创建了一个过滤器,我能够同时提供静态页面和常规REST资源。