将* .html映射到servlet后,Websphere没有使用welcome-file-list

时间:2012-07-05 18:11:00

标签: websphere web.xml

我正在使用IBM WebSphere(WAS)7.0.0.19来托管基于java的Web应用程序,我需要将扩展​​名* .html映射到特定的servlet,以便我可以对用户进行一些服务器端清理 - 提供的HTML文件。 (服务器读取文件,使用一些额外信息对其进行扩充,并向查看页面的人透明地提供修改后的内容。)

不幸的是,当我这样做时,欢迎文件停止工作。以前,如果我输入目录的URL,服务器将查找index.html并提供该功能。现在,我只是得到了一条403禁止的规则(“禁止 - 按规则。”)。访问日志不再显示任何内容 - 它们只是声明服务器规则禁止目录索引,这是正确的。我不希望web服务器为没有index.html的目录构建目录,但是当有index.html时,我希望它能够提供该文件。

我的第一个想法是它试图通过我的servlet服务index.html,servlet无法找到文件(因为url缺少“index.html”),因此它认为没有索引。 HTML。但是,我输入了一些调试代码,并且我非常确信当我简单地转到目录本身时,servlet代码永远不会运行。

我真的不关心index.html是否通过servlet提供 - 在这个特定文件的情况下,servlet无论如何都会吐回原始文件。我只想让index.html服务。

以下是我的web.xml的相关部分

<servlet-mapping>
    <servlet-name>PageScrubber</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>        

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

对于它的价值,index.htm和index.jsp在添加servlet映射之前不起作用。只有index.html以前工作过。但是,现在它们都不起作用。

我使用了与两个Oracle产品相同的web.xml:WebLogic(WLS)和Oracle Application Server(OAS),没有任何问题。

我非常有信心只是添加了这个导致问题的擦除器servlet,因为删除该指令导致目录索引再次开始工作。

我确实找到了一些关于welcome-file-list在使用扩展文档根目录时无效的说明,我尝试将com.ibm.ws.webcontainer.EnablePartialURLtoExtendedDocumentRoot设置为true,但这似乎没有任何改变。

我几乎没有想法。有没有人有任何想法为什么它没有找到我的index.html?提前谢谢!

1 个答案:

答案 0 :(得分:1)

警告:我在这里没有记忆。

欢迎文件曾经由File Serving Servlet提供(或听起来与此类似)。

此信息将位于WebSphere扩展文件中。

我会退后一步并删除你的pageScrubber并获取服务Servlet的文件来提供欢迎文件,并在返回使用PageScrubber之前看看它们是否正常工作。

这是我最初的想法。

HTH