RequestDispatcher.forward()到"/ WEB-INF"下的资源在WebSphere中不起作用

Ant*_*ton 3 java websphere servlets web-inf requestdispatcher

在我的一个servlet中,我RequestDispatcher.forward()在WEB-INF文件夹下的某个地方调用静态资源:

request
    .getRequestDispatcher( "/WEB-INF/some/path/image.gif" )
        .forward( request, response );
Run Code Online (Sandbox Code Playgroud)

导航到这个servlet在Tomcat,Jetty等下工作正常,但在WebSphere 7中不起作用.我得到的错误(在浏览器和服务器日志中)都是

Error 403: SRVE0190E: File not found: /WEB-INF/some/path/image.gif
Run Code Online (Sandbox Code Playgroud)

最初我假设WebSphere可能需要一些特定的配置来允许内部转发到WEB-INF下的资源,但我没有谷歌任何有用的东西.

任何想法为何会发生这种情况?

提前致谢!

Ant*_*ton 6

似乎应该设置exposeWebInfOnDispatch属性true,以便为WebSphere中的servlet提供WEB-INF.我从WebSphere论坛得到了这个答案.


在WebSphere 7管理控制台中,

  1. 转到左边的"Servers"=>"Server Types"=>"WebSphere application servers"
  2. 在页面主要部分的列表中选择适当的服务器
  3. 单击"容器设置"=>"Web容器设置"=>"Web容器"
  4. 转到右侧的"自定义属性"
  5. 添加新属性:

    • 名称: exposeWebInfOnDispatch
    • 值: true