tomcat中,web.xml配置filter出错
环境:win2000 pro , tomcat 4.1.24 ,mysql 4.0.18,struts 1.1
根据网上流行的解决struts中文问题的方案,在web.xml中添加过滤器,如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.zhiss.JLLPro.common.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
问题:启动tomcat时,报错,错误信息如下:
Starting service Tomcat-Standalone
Apache Tomcat/4.1.24
2004-4-6 14:35:08 org.apache.commons.digester.Digester error
严重: Parse Error at line 9 column 12: Element type "filter" must be declared.
org.xml.sax.SAXParseException: Element type "filter" must be declared.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(
Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
尝试解决方案如下,均告失败:
1、因为是org.apache.commons.digester.Digester error,所以在apache.org重新下载了最新的digester包,替换本地tomcat 的 server/lib下的解析xml的包,无效;
2、打开web.xml,发现doctype定义如下:
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
直接使用http://java.sun.com/j2ee/dtds/web-app_2_2.dtd访问该dtd,发现无filter的定义,疑惑中……
3、使用tomcat 5.0以上版本则正确。
怎么办,请大侠指点迷津!!!!