3

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

request
    .getRequestDispatcher( "/WEB-INF/some/path/image.gif" )
        .forward( request, response );

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

Error 403: SRVE0190E: File not found: /WEB-INF/some/path/image.gif

最初我认为 WebSphere 可能需要一些特定的配置来允许内部转发到 WEB-INF 下的资源,但是我没有在 google 上搜索任何有用的东西。

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

提前致谢!

4

2 回答 2

6

似乎应该将exposeWebInfOnDispatch属性设置true为 以使 WebSphere 中的 servlet 可以访问 WEB-INF。我从WebSphere 论坛得到了这个答案。


在 WebSphere 7 管理控制台中,

  1. 转到左侧的“服务器”=>“服务器类型”=>“WebSphere 应用程序服务器”
  2. 在页面主要部分的列表中选择合适的服务器
  3. 单击“容器设置”=>“Web 容器设置”=>“Web 容器”
  4. 转到右侧的“自定义属性”
  5. 添加新属性:

    • 姓名:exposeWebInfOnDispatch
    • 价值:true
于 2013-12-05T13:24:02.327 回答
0

您收到 HTTP 403,这意味着被禁止。尝试将 image.gif 移出 WEB-INF。这可能有效

于 2013-12-04T14:57:19.373 回答