微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Tomcat不提供静态文件

我就在这一根绳子的尽头.我试图获得一个超级简单的webapp,我似乎无法让tomcat不是404静态文件.

>我正在使用tomcat版本7.0.39的gradle tomcat插件
>我的html文件位于hey-world / src / main / webapp / index.html
>我的web.xml看起来像这样:

<servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletdispatcher
    </servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>heyWorldApplication</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>Resteasy</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

所以我认为这个设置会将localhost:8080 / hey-world / static / index.html映射到文件,但每次都是404.这是gradle tomcat插件中某些约定的问题吗?

解决方法:

web.xml / servlet-mapping中使用的URL模式通常有点简单.我认为在你的情况下,Resteasy的/ *模式将作为一个包罗万象,所以没有其他映射真正重要.

为了进行调试,我建议您完全删除Resteasy-servlet,看看是否可以通过映射从自定义URL中为静态文件提供服务.
如果可行,请重新启用Resteasy,但使用不同的URL模式(例如/ rest / *).

如果这样可行,那么一切都运行正常,只是/ *的URL映射阻止了其他任何工作.

最简单的解决方案可能是认情况下服务器静态文件(无映射),并从另一个URL提供rest-stuff.

或者使用两个Web应用程序.一个具有上下文根“/ static”,一个具有上下文根“/”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐