Filter mapping must specify either a <url-pattern> or a <servlet-name>问题的处理

来源:互联网 发布:网站程序员培训中心 编辑:程序博客网 时间:2024/06/01 14:35

Filter中的 <url-pattern>

1>异常信息如下

九月 25, 2017 4:11:25 下午 org.apache.catalina.startup.ContextConfig applicationWebConfig严重: Parse error in application web.xml file at jndi:/localhost/yinhang/WEB-INF/web.xmlorg.xml.sax.SAXParseException; systemId: jndi:/localhost/yinhang/WEB-INF/web.xml; lineNumber: 35; columnNumber: 19; Error at (35, 19: Filter mapping must specify either a <url-pattern> or a <servlet-name>at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2726)at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2752)at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1061)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1789)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2965)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369)at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4236)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:516)at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:566)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)Caused by: java.lang.IllegalArgumentException: Filter mapping must specify either a <url-pattern> or a <servlet-name>at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2157)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

2>错误出在web.xml的lineNumber: 35; columnNumber: 19;

3>问题就出在filter-mapping的url-pattern的配置这里;

说明:

url-pattern有三种编写规则

  • 精确匹配:就是配置全路径,详细路径。如/WEB-INF/jsp/main.jsp,会匹配这个唯一的main.jsp文件
  • 路径匹配:按照路径进行匹配。如/com/*;/*/reg/*;这种存在指定的路径及通配符,会匹配遵循该路径规则的所有文件
  • 后缀匹配:按照文件后缀名进行匹配。如*.action,会匹配所有以action为后缀的文件

常见的错误配置:

  • /*/
  • /*.action
  • */reg
  • ...

解决:

按照规范制定url-pattern即可。我这里把'*'换成'/*'即可.




阅读全文
0 0
原创粉丝点击