【问题标题】:springboot filter error when deployed on external tomcat部署在外部tomcat上时springboot过滤器错误
【发布时间】:2020-09-15 17:01:48
【问题描述】:

我的 springboot 应用程序中有过滤器。在嵌入式 tomcate 9.0.34 中运行应用程序时,它可以工作。但是,当我创建战争并将其部署在外部 tomcate 8.5 上时,它会引发以下错误。

2020 年 5 月 28 日 16:59:32.125 严重 [RMI TCP 连接 (2)-127.0.0.1] org.apache.catalina.core.StandardContext.filterStart 异常启动过滤器 [authenticationFilter] java.lang.AbstractMethodError 在 org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281) 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:110) 在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4548) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5193) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) 在 org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287) 在 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 在 com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 在 org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:479) 在 org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:428) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287) 在 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 在 com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 在 com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468) 在 javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) 在 javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) 在 javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408) 在 javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357) 在 sun.rmi.transport.Transport$1.run(Transport.java:200) 在 sun.rmi.transport.Transport$1.run(Transport.java:197) 在 java.security.AccessController.doPrivileged(本机方法) 在 sun.rmi.transport.Transport.serviceCall(Transport.java:196) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) 在 java.security.AccessController.doPrivileged(本机方法) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) 2020 年 5 月 28 日 16:59:32.126 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个过滤器无法启动。

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    我的过滤器正在实现 javax.servlet.Filter,不确定是什么导致了问题,但我最终扩展了 org.springframework.web.filter.GenericFilterBean 并且错误消失了。

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 1970-01-01
      • 2018-06-26
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2011-12-28
      相关资源
      最近更新 更多