在resin 3.0.9 及以前版本下,下面几种写法都是可以的,而放到tomcat 5.0 下则抛出这个异常:
严重: parse error in application web.xml
java.lang.illegalargumentexception: invalid <url-pattern> * in filter mapping
at org.apache.commons.digester.digester.createsaxexception(digester.java:2540)
at org.apache.commons.digester.digester.createsaxexception(digester.java:2566)
at org.apache.commons.digester.digester.endelement(digester.java:1061)
at org.apache.xerces.parsers.abstractsaxparser.endelement(unknown source)
at org.apache.xerces.impl.xmldocumentfragmentscannerimpl.scanendelement(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.xml11configuration.parse(unknown source)
at org.apache.xerces.parsers.xml11configuration.parse(unknown source)
at org.apache.xerces.parsers.xmlparser.parse(unknown source)
at org.apache.xerces.parsers.abstractsaxparser.parse(unknown source)
at org.apache.commons.digester.digester.parse(digester.java:1548)
at org.apache.catalina.startup.contextconfig.applicationconfig(contextconfig.java:263)
at org.apache.catalina.startup.contextconfig.start(contextconfig.java:624)
at org.apache.catalina.startup.contextconfig.lifecycleevent(contextconfig.java:216)
at org.apache.catalina.util.lifecyclesupport.firelifecycleevent(lifecyclesupport.java:119)
at org.apache.catalina.core.standardcontext.start(standardcontext.java:4290)
at org.apache.catalina.core.standardhostdeployer.start(standardhostdeployer.java:830)
at org.apache.catalina.core.standardhost.start(standardhost.java:991)
at org.apache.catalina.manager.managerservlet.start(managerservlet.java:1322)
at org.apache.catalina.manager.htmlmanagerservlet.start(htmlmanagerservlet.java:530)
at org.apache.catalina.manager.htmlmanagerservlet.doget(htmlmanagerservlet.java:104)
at javax.servlet.http.httpservlet.service(httpservlet.java:689)
at javax.servlet.http.httpservlet.service(httpservlet.java:802)
at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:237)
at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:157)
at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:214)
at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:104)
at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:520)
at org.apache.catalina.core.standardcontextvalve.invokeinternal(standardcontextvalve.java:198)
at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:152)
at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:104)
at org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:540)
at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:102)
at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:520)
at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:137)
at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:104)
at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:118)
at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:102)
at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:520)
at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)
at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:104)
at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:520)
at org.apache.catalina.core.containerbase.invoke(containerbase.java:929)
at org.apache.coyote.tomcat5.coyoteadapter.service(coyoteadapter.java:160)
at org.apache.coyote.http11.http11processor.process(http11processor.java:799)
at org.apache.coyote.http11.http11protocol$http11connectionhandler.processconnection(http11protocol.java:705)
at org.apache.tomcat.util.net.tcpworkerthread.runit(pooltcpendpoint.java:577)
at org.apache.tomcat.util.threads.threadpool$controlrunnable.run(threadpool.java:683)
at java.lang.thread.run(thread.java:595)
必须写成这个:
<filter-mapping>
<filter-name>set character encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
写成这个不行:
<filter-mapping>
<filter-name>set character encoding</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
而我改成这样,却是正确的,通过了:
<filter-mapping>
<filter-name>set character encoding</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
因此,我认为这是个bug。
闽公网安备 35060202000074号