Servlet已触发但无法找到指定HTML文件的问题求助
问题排查与解决方案
可能的原因及解决方法:
相对路径错误
你当前使用的getRequestDispatcher("carInventory.html")是相对Servlet所在路径的写法,你的Servlet映射路径是/car-types,所以forward会尝试查找/car-types/carInventory.html,但你的HTML文件实际在webapp根目录。
解决:改用绝对路径,修改代码为:RequestDispatcher view = request.getRequestDispatcher("/carInventory.html");RESTEasy特性拦截静态资源请求
你启用了restfulWS-3.0特性,RESTEasy可能会接管所有请求的路由逻辑,导致静态资源的forward请求被错误识别为REST资源,从而抛出找不到资源的错误。
解决:可以在server.xml中添加静态资源配置,明确指定静态资源的处理规则,示例:<webApplication id="OpenLibertyExperiments" location="OpenLibertyExperiments.war" name="OpenLibertyExperiments"> <staticContent id="static-content"> <fileset dir="${server.config.dir}/apps/OpenLibertyExperiments/webapp" includes="*.html"/> </staticContent> </webApplication>同时检查是否存在自定义JAX-RS应用类(如继承
Application的类),若其配置了过于宽泛的路径映射,也可能覆盖静态资源的访问逻辑。HTML文件实际位置不符
确认carInventory.html确实位于webapp的根目录下,而非子目录(比如webapp/html/);同时检查打包后的war包中是否包含该文件,避免编译打包过程中遗漏静态资源。
内容的提问来源于stack exchange,提问作者Teshte
相关产品推荐
相关产品推荐

