继承错类

本文介绍了一个 Struts2 过滤器配置错误案例,在实现自定义拦截器时,因错误地继承了 AbstractInterceptor 而不是 MethodFilterInterceptor 类而导致运行时异常。详细分析了错误堆栈,指出问题所在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写struts2的过滤器时,本应该继承MethodFilterInterceptor类
却继承了AbstractInterceptor.导致报以下的错

Caught OgnlException while setting property ‘excludeMethods’ on type ‘com.interceptor.LoginInterceptor’.
ognl.NoSuchPropertyException: com.interceptor.LoginInterceptor.excludeMethods
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:166)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2332)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil 1.execute(OgnlUtil.java:287)atcom.opensymphony.xwork2.ognl.OgnlUtil 1. e x e c u t e ( O g n l U t i l . j a v a : 287 ) a t c o m . o p e n s y m p h o n y . x w o r k 2. o g n l . O g n l U t i l 1.execute(OgnlUtil.java:282)
at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecute(OgnlUtil.java:340)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:282)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:278)
at com.opensymphony.xwork2.ognl.OgnlUtil.internalSetProperty(OgnlUtil.java:547)
at com.opensymphony.xwork2.ognl.OgnlUtil.setProperties(OgnlUtil.java:170)
at com.opensymphony.xwork2.ognl.OgnlUtil.setProperties(OgnlUtil.java:197)
at com.opensymphony.xwork2.ognl.OgnlUtil.setProperties(OgnlUtil.java:184)
at com.opensymphony.xwork2.ognl.OgnlReflectionProvider.setProperties(OgnlReflectionProvider.java:58)
at com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:43)
at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:209)
at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1114)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:932)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:945)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:968)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:537)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
at com.opensymphony.xwork2.config.ConfigurationManager.reloadProviders(ConfigurationManager.java:235)
at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:184)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:73)
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:279)
at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:184)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:108)
at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:315)
at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4811)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5618)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3947)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
at org.apache.catalina.core.ContainerBase ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)atorg.apache.catalina.core.ContainerBase C o n t a i n e r B a c k g r o u n d P r o c e s s o r . p r o c e s s C h i l d r e n ( C o n t a i n e r B a s e . j a v a : 1530 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . C o n t a i n e r B a s e ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
at org.apache.catalina.core.ContainerBase ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)atorg.apache.catalina.core.ContainerBase C o n t a i n e r B a c k g r o u n d P r o c e s s o r . p r o c e s s C h i l d r e n ( C o n t a i n e r B a s e . j a v a : 1540 ) a t o r g . a p a c h e . c a t a l i n a . c o r e . C o n t a i n e r B a s e ContainerBackgroundProcessor.run(ContainerBase.java:1519)
at java.lang.Thread.run(Thread.java:744)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值