简体   繁体   English

org.springframework.web.filter.HiddenHttpMethodFilter无法强制转换为javax.servlet.Filter

[英]org.springframework.web.filter.HiddenHttpMethodFilter cannot be cast to javax.servlet.Filter

I have a maven webapp based on spring framework 3 and when I run the application on jetty using maven-jetty-plugin by running the command mvn -e clean jetty:run it runs alright, but when I run it on tomcat using tomcat-maven-plugin by running the command mvn -e clean tomcat:run it gives me the following exception: 我有一个基于spring框架3的maven webapp,当我使用maven-jetty-plugin运行命令mvn -e clean jetty:run在jetty上运行应用程序时mvn -e clean jetty:run它运行正常,但是当我使用tomcat-maven-plugin在tomcat上运行它时tomcat-maven-plugin通过运行命令mvn -e clean tomcat:run它给我以下异常:

java.lang.ClassCastException: org.springframework.web.filter.HiddenHttpMethodFilter 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:558)
        at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        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.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

Following is how I've got filters in the web.xml are configured: 以下是我在web.xml中配置过滤器的方法:

<!-- Filters -->
<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter>
    <filter-name>methodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
    <filter-name>methodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Could someone help me understand why am I getting this error and help me resolve it? 有人可以帮我理解为什么我会收到此错误并帮我解决?

Thanks. 谢谢。

  1. first see First confluence servlet plugin, ClassCastException problem 首先看一下一个confluence servlet插件,ClassCastException问题
 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> 

notice that 注意到

 <scope>provided</scope> 

then you need check the dependency tree, exclude other servlet-api 那么你需要检查依赖树,排除其他servlet-api

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.springframework.web.filter.CharacterEncodingFilter无法转换为javax.servlet.Filter - org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter OpenSessionInViewFilter无法强制转换为javax.servlet.Filter - OpenSessionInViewFilter cannot be cast to javax.servlet.Filter Spring 安全 – 无法访问 javax.servlet.Filter - Spring Security – cannot access javax.servlet.Filter ClassCastException:org.springframework.web.servlet.DispatcherServlet无法转换为javax.servlet.Servlet - ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet 带有javax.servlet.Filter的DelegatingFilterProx不起作用 - DelegatingFilterProx With javax.servlet.Filter Not Working Spring Tomcat7错误“org.springframework.web.SpringServletContainerInitializer无法强制转换为javax.servlet.ServletContainerInitializer” - Spring Tomcat7 error “org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer” org.springframework.web.SpringServletContainerInitializer无法转换为javax.servlet.ServletContainerInitializer — Eclipse Spring项目 - org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer — Eclipse Spring Project 我可以将SimpleJaxWsServiceExporter与javax.servlet.Filter一起使用吗? - Can I use a SimpleJaxWsServiceExporter with a javax.servlet.Filter? NoSuchBeanDefinitionException: 没有可用的“javax.servlet.Filter”类型的合格 bean - NoSuchBeanDefinitionException: No qualifying bean of type 'javax.servlet.Filter' available 不能在IntelliJ入门项目中将DelegatingFilterProxy分配给javax.servlet.Filter ERROR - DelegatingFilterProxy is not assignable to javax.servlet.Filter ERROR in IntelliJ starter project
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM