WebSphere 7是否检查web.xml的验证?

时间:2014-09-10 06:00:55

标签: websphere websphere-7

我们知道在servlet 2.3中添加了过滤器,但看起来有些应用服务器不是web.xml的验证,但在JBoss中会导致异常。例如,在WebSphere 7(7.0.0.21)中,您可以部署.war,其中在web.xml中使用2.2 dtd声明的过滤器。

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app id="WebApp">
    <filter>
        <filter-name>FooFilter</filter-name>
        <filter-class>com.test.filter.FooFilter</filter-class>

    </filter>
    <filter-mapping> 
        <filter-name>FooFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

问题:这是 WebSphere 7 中的缺陷还是设计上的?

1 个答案:

答案 0 :(得分:1)

WebSphere Application Server不对web.xml执行DTD或XSD验证。因为许多应用程序希望在XML文件格式错误的情况下运行,因此设计可以处理格式错误的文档,因为其他应用程序服尽管如此,还是对意外元素进行了一些验证,但似乎对web.xml版本2.2和2.3进行了等效处理。我怀疑这也是设计上的,并且由于可能破坏现有的应用程序而不太可能改变。