开发者社区> 问答> 正文

tomcat 5.5 部署项目报错 关于Filter的错误。。?报错

我在tomcat7.0部署没不报错,但是再tomcat5.5就会报错。。


<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>
     
     
     
<listener>
<!-- 指定Listener的实现类 -->
<listener-class>listener.ContextListener</listener-class>
</listener>


     <!-- Set URL Rewrite-->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
<init-param>  
       <param-name>logLevel</param-name>  
        <param-value>WARN</param-value>  
   </init-param>  
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
     
     
     <jsp-config>   
        <taglib>   
            <!-- 此处uri可以自己随便定义,但后面用时一定与这里一样 -->   
            <taglib-uri>   
               MyTablib    
            </taglib-uri>   
            <!-- tld文件的路径 -->   
            <taglib-location>   
               /WEB-INF/tld/custom-function.tld    
            </taglib-location>   
        </taglib>   
        
        <taglib>
      <taglib-uri>/page</taglib-uri>
      <taglib-location>/WEB-INF/tld/page.tld</taglib-location>
      </taglib>
    
    </jsp-config>
        




<filter>
  <filter-name>adminFilter</filter-name>
  <filter-class>filter.adminFilter</filter-class>
</filter>
 
<filter-mapping>
<filter-name>adminFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<servlet-name>checkInforServlet</servlet-name>
<servlet-name>changeServlet</servlet-name>
<servlet-name>addCorpSerlvet</servlet-name>
<servlet-name>addInforSerlvet</servlet-name>
<servlet-name>changeInforSerlvet</servlet-name>
<servlet-name>checkInforServlet</servlet-name>
<servlet-name>deleteBacthInforSerlvet</servlet-name>
<servlet-name>deleteInforSerlvet</servlet-name>
<servlet-name>getInforSerlvet</servlet-name>
<servlet-name>addProduceSerlvet</servlet-name>
<servlet-name>changeProduceSerlvet</servlet-name>
<servlet-name>checkProduceServlet</servlet-name>
<servlet-name>deleteBacthProduceSerlvet</servlet-name>
<servlet-name>deleteProduceSerlvet</servlet-name>
<servlet-name>deleteTupainProduceSerlvet</servlet-name>
<servlet-name>getProduceSerlvet</servlet-name>
</filter-mapping>
 
  
  
    
  
       
  <servlet>
    <servlet-name>adminLoginServlet</servlet-name>
    <servlet-class>servlet.adminServlet.adminLoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>adminLoginServlet</servlet-name>
    <url-pattern>/adminLoginServlet</url-pattern>
  </servlet-mapping>
  
   <servlet>
    <servlet-name>changeServlet</servlet-name>
    <servlet-class>servlet.adminServlet.changeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>changeServlet</servlet-name>
    <url-pattern>/changeServlet</url-pattern>
  </servlet-mapping>
  
  
   <servlet>
    <servlet-name>corpSerlvet</servlet-name>
    <servlet-class>servlet.corpServlet.corpSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>corpSerlvet</servlet-name>
    <url-pattern>/corpSerlvet</url-pattern>
  </servlet-mapping>
  
   <servlet>
    <servlet-name>addCorpSerlvet</servlet-name>
    <servlet-class>servlet.corpServlet.addCorpSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>addCorpSerlvet</servlet-name>
    <url-pattern>/addCorpSerlvet</url-pattern>
  </servlet-mapping>
  
   <servlet>
    <servlet-name>checkInforServlet</servlet-name>
    <servlet-class>servlet.inforServlet.checkInforServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>checkInforServlet</servlet-name>
    <url-pattern>/checkInforServlet</url-pattern>
  </servlet-mapping>
  
     <servlet>
    <servlet-name>addInforSerlvet</servlet-name>
    <servlet-class>servlet.inforServlet.addInforSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>addInforSerlvet</servlet-name>
    <url-pattern>/addInforSerlvet</url-pattern>
  </servlet-mapping>
  
     <servlet>
    <servlet-name>deleteInforSerlvet</servlet-name>
    <servlet-class>servlet.inforServlet.deleteInforSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>deleteInforSerlvet</servlet-name>
    <url-pattern>/deleteInforSerlvet</url-pattern>
  </servlet-mapping>
  
     <servlet>
    <servlet-name>getInforSerlvet</servlet-name>
    <servlet-class>servlet.inforServlet.getInforSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>getInforSerlvet</servlet-name>
    <url-pattern>/getInforSerlvet</url-pattern>
  </servlet-mapping>
  
   <servlet>
    <servlet-name>exitServlet</servlet-name>
    <servlet-class>servlet.adminServlet.exitServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>exitServlet</servlet-name>
    <url-pattern>/exitServlet</url-pattern>
  </servlet-mapping>
  
    <servlet>
    <servlet-name>changeInforSerlvet</servlet-name>
    <servlet-class>servlet.inforServlet.changeInforSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>changeInforSerlvet</servlet-name>
    <url-pattern>/changeInforSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>deleteBacthInforSerlvet</servlet-name>
    <servlet-class>servlet.inforServlet.deleteBacthInforSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>deleteBacthInforSerlvet</servlet-name>
    <url-pattern>/deleteBacthInforSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>addProduceSerlvet</servlet-name>
    <servlet-class>servlet.produceServlet.addProduceSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>addProduceSerlvet</servlet-name>
    <url-pattern>/addProduceSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>checkProduceServlet</servlet-name>
    <servlet-class>servlet.produceServlet.checkProduceServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>checkProduceServlet</servlet-name>
    <url-pattern>/checkProduceServlet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>deleteBacthProduceSerlvet</servlet-name>
    <servlet-class>servlet.produceServlet.deleteBacthProduceSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>deleteBacthProduceSerlvet</servlet-name>
    <url-pattern>/deleteBacthProduceSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>deleteProduceSerlvet</servlet-name>
    <servlet-class>servlet.produceServlet.deleteProduceSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>deleteProduceSerlvet</servlet-name>
    <url-pattern>/deleteProduceSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>getProduceSerlvet</servlet-name>
    <servlet-class>servlet.produceServlet.getProduceSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>getProduceSerlvet</servlet-name>
    <url-pattern>/getProduceSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>changeProduceSerlvet</servlet-name>
    <servlet-class>servlet.produceServlet.changeProduceSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>changeProduceSerlvet</servlet-name>
    <url-pattern>/changeProduceSerlvet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>deleteTupainProduceSerlvet</servlet-name>
    <servlet-class>servlet.produceServlet.deleteTupainProduceSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>deleteTupainProduceSerlvet</servlet-name>
    <url-pattern>/deleteTupainProduceSerlvet</url-pattern>
  </servlet-mapping>
  
   <servlet>
    <servlet-name>ToCorpHtmlServlet</servlet-name>
    <servlet-class>ToHtmlServlet.ToCorpHtmlServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ToCorpHtmlServlet</servlet-name>
    <url-pattern>/ToCorpHtmlServlet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>ToHomeHtmlServlet</servlet-name>
    <servlet-class>ToHtmlServlet.ToHomeHtmlServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ToHomeHtmlServlet</servlet-name>
    <url-pattern>/ToHomeHtmlServlet</url-pattern>
  </servlet-mapping>
  
    <servlet>
    <servlet-name>ToProduceAmount</servlet-name>
    <servlet-class>ToHtmlServlet.ToProduceAmount</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ToProduceAmount</servlet-name>
    <url-pattern>/ToProduceAmount</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>home.html</welcome-file>
  </welcome-file-list>
  

</web-app>



java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:898)
at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:192)
at org.apache.tomcat.util.digester.Rule.end(Rule.java:228)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1057)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
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:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:351)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1041)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:260)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4143)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
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:2107)
... 46 more
2014-3-6 12:12:31 org.apache.catalina.startup.ContextConfig applicationWebConfig
严重: Parse error in application web.xml file at jndi:/localhost/WEB-INF/web.xml
java.lang.IllegalArgumentException: Filter mapping must specify either a <url-pattern> or a <servlet-name>
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2725)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2751)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
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:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:351)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1041)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:260)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4143)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)



展开
收起
爱吃鱼的程序员 2020-06-22 11:41:58 497 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    tomcat5.5不支持 Servlet2.5

    你的web.xml的写法是Servlet2.5的。

    注意看你的文件头部:

    <web-appversion="2.5"  
    xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 


    在2.5版本的xsd里面:

     <xsd:sequence>
       <xsd:elementname="filter-name"
     type="javaee:filter-nameType"/>
       <xsd:choiceminOccurs="1"maxOccurs="unbounded">
    <xsd:elementname="url-pattern"
      type="javaee:url-patternType"/>
    <xsd:elementname="servlet-name"
      type="javaee:servlet-nameType"/>
       </xsd:choice>
       <xsd:elementname="dispatcher"
     type="javaee:dispatcherType"
     minOccurs="0"maxOccurs="4"/>
      </xsd:sequence>

    是这样的

    而在2.4版本:

    是这个:

     <xsd:complexTypename="filter-mappingType">
       <xsd:annotation>
         <xsd:documentation>

     Declarationofthefiltermappingsinthisweb
     applicationisdonebyusingfilter-mappingType.
     Thecontainerusesthefilter-mapping
     declarationstodecidewhichfilterstoapplytoarequest,
     andinwhatorder.ThecontainermatchestherequestURIto
     aServletinthenormalway.Todeterminewhichfiltersto
     applyitmatchesfilter-mappingdeclarationseitheron
     servlet-name,oronurl-patternforeachfilter-mapping
     element,dependingonwhichstyleisused.Theorderin
     whichfiltersareinvokedistheorderinwhich
     filter-mappingdeclarationsthatmatcharequestURIfora
     servletappearinthelistoffilter-mappingelements.The
     filter-namevaluemustbethevalueofthefilter-name
     sub-elementsofoneofthefilterdeclarationsinthe
     deploymentdescriptor.

         </xsd:documentation>
       </xsd:annotation>

       <xsd:sequence>
         <xsd:elementname="filter-name"
        type="j2ee:filter-nameType"/>
         <xsd:choice>
     <xsd:elementname="url-pattern"
          type="j2ee:url-patternType"/>
     <xsd:elementname="servlet-name"
          type="j2ee:servlet-nameType"/>
         </xsd:choice>
         <xsd:elementname="dispatcher"
        type="j2ee:dispatcherType"
        minOccurs="0"maxOccurs="4"/>
       </xsd:sequence>
       <xsd:attributename="id"type="xsd:ID"/>
     </xsd:complexType>

    区别在于  <xsd:choice>和  <xsd:choiceminOccurs="1"maxOccurs="unbounded"> 严重:Parseerrorinapplicationweb.xmlfileatjndi:/localhost/WEB-INF/web.xml
    java.lang.IllegalArgumentException:Filtermappingmustspecifyeithera<url-pattern>ora<servlet-name>

    eithera<url-pattern>ora<servlet-name>

    就是要么用  <url-pattern> ,要么  <servlet-name>,不能两个都放里面。

    应该是adminFilter这个


    下次请用代码格式-,-!!

    引用来自“然则何时而乐”的答案

    eithera<url-pattern>ora<servlet-name>

    就是要么用  <url-pattern> ,要么  <servlet-name>,不能两个都放里面。

    应该是adminFilter这个


    2020-06-22 11:42:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载