为什么不能把这个斜线省略掉呢?

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在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。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航