tomcat7.0.52及以上版本web.xml引用外部文件问题

2/10/2017来源:ASP.NET技巧人气:368

1、现在我因为servlet很多,我为了方便管理希望能拆分文件。网上搜到的方法是这样的:         在web.xml文件里webapp标签上方加上

        <!DOCTYPE web-app [<!ENTITY test SYSTEM "../root/conf/web-test.xml">]>,然后webapp标签内使用   &test;  就可以了。

项目中具体见截图:

我测试了一下在tomcat 6下面这个方式确实是可以的,但是在tomcat7下面就报错了。

java.io.FileNotFoundException: Could not resolve XML resource [null] with public ID [null], system ID [.

然后我又网上搜了一下,得知tomcat7已经不支持了。

2、 以下是网上找到的答复

【tomcat 7.0.52开始的版本才会出这个问题,是因为安全的考虑tomcat 7.0.52开始的版本把xmlBlockExterna属性默认为true,要解决这个问题,两种方法:

(1)、把tomcat版本换成7.0.52之前的版本。

(2)、把xmlBlockExterna设成false。

下面是原版解释: As per discussion with Tomcat developers, xmlBlockExternal="true" attribute of Tomcat's Context (context.xml) was set true by default starting from 7.0.52. With xmlBlockExternal="false"generated/djn-settings.conf can be included】

 但是我现在必须使用tomcat 7,而且我不知道怎么配置xmlBlockExternal

3、解决方法:tomcat安装配置文件context.xml添加false设置

C:\PRogram Files\Apache Software Foundation\Tomcat7_0_52\conf\context.xml

设置前:<Context >

设置后:<Context xmlBlockExternal="false">