服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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

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

扫描关注微信公众号