2011-10-10 7 views
6

किसी को भी मुझे मेरे बिल्ला चलाने त्रुटि को हल करने में मदद कर सकते हैं, जब मैं बिल्ला चलाने मैं निम्नलिखित त्रुटि मिलती है:गंभीर: अपवाद springSecurityFilterChain ... ClassCastException ... DelegatingFilterProxy ढाला नहीं जा सकता

SEVERE: Exception starting filter springSecurityFilterChain 
java.lang.ClassCastException: org.springframework.web.filter.DelegatingFilterProxy cannot be cast to javax.servlet.Filter 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) 
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) 
    at org.apache.catalina.startup.Embedded.start(Embedded.java:825) 
    at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:533) 
    at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:239) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 

उत्तर

3

मैं इसे ठीक कर सकता है (ग्रहण में)

मेरी-वेब-परियोजना> गुण मेरी तैनाती विधानसभा से निकालने सर्वलेट-api.jar -> तैनाती विधानसभा

और इसे हटाने। अन्य लोग बताते हैं कि मेवेन प्रोजेक्ट्स पर सर्वलेट-एपी निर्भरता का दायरा 'प्रदान किया गया'

9

आपकी निर्भरताओं में से एक में आपकी युद्ध फ़ाइल में सर्वलेट-एपीआई शामिल है जो उस व्यवहार का कारण बनती है। एमवीएन निर्भरता का उपयोग करना: पेड़, आप यह पता लगा सकते हैं कि आपकी निर्भरता कौन सा है। उसके बाद आप इस प्रकार सर्वलेट-api बाहर करने की आवश्यकता: (: .. सर्वलेट-api, उदा org.mortbay.jetty) के रूप में अच्छी तरह से

<dependency> 
    <groupId>[VALUE]</groupId> 
    <artifactId>[VALUE]</artifactId> 
    <version>[VALUE]</version> 
    <exclusions> 
    <exclusion> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

आप अन्य सर्वलेट-api के लिए यह करने के लिए की जरूरत है।

1

मुझे एक समान समस्या मिली जब मैंने सीएक्सएफ के लिए निर्भरता जोड़ा। मैंने उस निर्भरता से javax.servlet को छोड़ने के उपर्युक्त अनुशंसित तरीके की कोशिश की लेकिन यह काम नहीं किया- लेकिन जोड़कर इसे हल किया गया। यह आपके लिए एक अलग मामला हो सकता है लेकिन कोशिश करने लायक है।

<dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-bundle-jaxrs</artifactId> 
     <version>2.2.9</version> 
     <scope>provided</scope> 
    </dependency> 

यदि मैंने आपके प्रश्न का उत्तर दिया तो कृपया इसे चिह्नित करें। ;)

0

समान समस्या को जीरोनीमो को छोड़कर हल किया गया था।

 <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http-jetty</artifactId> 
     <version>3.0.3</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.apache.geronimo.specs</groupId> 
       <artifactId>geronimo-servlet_2.5_spec</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.geronimo.specs</groupId> 
       <artifactId>geronimo-servlet_3.0_spec</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

determinig जो जार फ़ाइलों कक्षाओं यह निहित के लिए वेब-INF/lib फ़ोल्डर में प्रत्येक जार फ़ाइल को स्कैन करके पाया त्रुटि यूएएस निहित। अर्थात।

jar tvf <jar-file> 
0

शायद web.xml में आप

<servlet> 
    <servlet-name>springSecurityFilterChain</servlet-name> 
    <servlet-class>org.springframework.web.filter.DelegatingFilterProxy</servlet-class> 
</servlet> 

कॉन्फ़िगर लेकिन यह फिल्टर है। तो फ़िल्टर के रूप में सर्वलेट बदलें।

संबंधित मुद्दे