【问题标题】:Deploying a webapp under ROOT - index.html not displaying在 ROOT 下部署 webapp - index.html 不显示
【发布时间】:2015-05-27 23:58:18
【问题描述】:

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

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

但是,当我在 ROOT - ${catalina_home}/ROOT 下部署它时 - 当我导航到 http://localhost:8080/ 时,里面的 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 Display html page in tomcat from maven RESTEasy webapp 中看到问题可能是我的过滤器说 /* 下的任何内容都应该转到 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>

【问题讨论】:

    标签: java tomcat servlets web-deployment


    【解决方案1】:

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

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

    【讨论】:

    • 我通过在 ${catalina_home}/conf/Catalina/localhost 中指定 ROOT.xml 来部署它。这很好用。我之前确实尝试过welcome 属性,但这并没有什么区别......我认为index.html 是默认值,如果你想覆盖它,你可以指定这个属性,但对我来说不是这样。我感觉它与 servlet 映射有关,但我还没有完全弄清楚我做错了什么......
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-07
      • 2013-02-13
      • 2015-05-29
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 2018-05-22
      相关资源
      最近更新 更多