Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1

本文解决了一个在启动Tomcat时遇到的Struts2框架错误问题,该问题由struts2-spring-plugin-2.2.3.jar引起。文章详细记录了错误信息,并提供了两种解决方案:一是移除多余的包;二是确保使用Spring时正确配置监听器。

转自:http://blog.51cto.com/alinazh/1276363

在启动tomcat的时候出现错误:

Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1 .
严重: Exception starting filter struts2
Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:195)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1215)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:220)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:530)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:501)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:457)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:380)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)
... 20 more

原因及解决办法:

不要引入包:struts2-spring-plugin-2.2.3.jar.

就是这么简单。

需要注意的是,这里指的不要引入,是在web工程的WEBROOT/WEB-INF/lib中也不要有多余的包,之前我的问题是lib中的包有冲突,
只在工程的buildpath中不引入,这个是不能控制包的冲突的!!

类似的问题及解决
启动服务器时出现异常:

警告: Failed startup of context com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@1242b11{/,E:\workspace\uploadPhoto\war}

Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line: 209 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:209:-1
Caused by: java.lang.NullPointerException  at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:209)

原因两个:
1.lib中多导入包的大原因:去掉struts2-spring-plugin-2.1.8包即可,因为没有用到spring。
2.还有的原因是用spring了,却没加监听器,在web.xml里面加上
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> 

{"cause":null,"stackTrace":[{"methodName":"getRsaMpaWeb","fileName":"PilotQtyServiceImpl.java","lineNumber":306,"className":"com.smec.apps.oms.orderContract.service.impl.PilotQtyServiceImpl","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java","lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":62,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"Method.java","lineNumber":498,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":335,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":181,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":148,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":96,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":170,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"methodName":"invoke","fileName":"JdkDynamicAopProxy.java","lineNumber":176,"className":"org.springframework.aop.framework.JdkDynamicAopProxy","nativeMethod":false},{"methodName":"getRsaMpaWeb","fileName":null,"lineNumber":-1,"className":"com.sun.proxy.$Proxy6","nativeMethod":false},{"methodName":"checkRiskQtyByProdID","fileName":"ContractServiceImpl.java","lineNumber":1743,"className":"com.smec.apps.oms.orderContract.service.impl.ContractServiceImpl","nativeMethod":false},{"methodName":"submitContractDetailList","fileName":"ContractServiceImpl.java","lineNumber":1827,"className":"com.smec.apps.oms.orderContract.service.impl.ContractServiceImpl","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java","lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":62,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"Method.java","lineNumber":498,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":335,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":181,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":148,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":96,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":170,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"methodName":"invoke","fileName":"JdkDynamicAopProxy.java","lineNumber":176,"className":"org.springframework.aop.framework.JdkDynamicAopProxy","nativeMethod":false},{"methodName":"submitContractDetailList","fileName":null,"lineNumber":-1,"className":"com.sun.proxy.$Proxy10","nativeMethod":false},{"methodName":"submitContract","fileName":"CreateContractWithDocAction.java","lineNumber":322,"className":"com.smec.apps.oms.orderContract.action.CreateContractWithDocAction","nativeMethod":false},{"methodName":"createAndSubmitContract","fileName":"CreateContractWithDocAction.java","lineNumber":240,"className":"com.smec.apps.oms.orderContract.action.CreateContractWithDocAction","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java","lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":62,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"Method.java","lineNumber":498,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName":"invokeAction","fileName":"DefaultActionInvocation.java","lineNumber":302,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":170,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"intercept","fileName":"AroundInterceptor.java","lineNumber":35,"className":"com.opensymphony.xwork.interceptor.AroundInterceptor","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":165,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"intercept","fileName":"AroundInterceptor.java","lineNumber":35,"className":"com.opensymphony.xwork.interceptor.AroundInterceptor","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":165,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"intercept","fileName":"FileUploadInterceptor.java","lineNumber":69,"className":"com.smec.apps.core.webwork.interceptor.FileUploadInterceptor","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":165,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"intercept","fileName":"ComponentAutowireInterceptor.java","lineNumber":25,"className":"com.smec.apps.core.webwork.interceptor.ComponentAutowireInterceptor","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":165,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"intercept","fileName":"AroundInterceptor.java","lineNumber":35,"className":"com.opensymphony.xwork.interceptor.AroundInterceptor","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":165,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"intercept","fileName":"ExceptionInterceptor.java","lineNumber":40,"className":"com.smec.apps.core.webwork.interceptor.ExceptionInterceptor","nativeMethod":false},{"methodName":"invoke","fileName":"DefaultActionInvocation.java","lineNumber":165,"className":"com.opensymphony.xwork.DefaultActionInvocation","nativeMethod":false},{"methodName":"execute","fileName":"DefaultActionProxy.java","lineNumber":115,"className":"com.opensymphony.xwork.DefaultActionProxy","nativeMethod":false},{"methodName":"serviceAction","fileName":"ServletDispatcher.java","lineNumber":229,"className":"com.opensymphony.webwork.dispatcher.ServletDispatcher","nativeMethod":false},{"methodName":"service","fileName":"ServletDispatcher.java","lineNumber":199,"className":"com.opensymphony.webwork.dispatcher.ServletDispatcher","nativeMethod":false},{"methodName":"service","fileName":"HttpServlet.java","lineNumber":790,"className":"javax.servlet.http.HttpServlet","nativeMethod":false},{"methodName":"handle","fileName":"ServletHolder.java","lineNumber":848,"className":"org.eclipse.jetty.servlet.ServletHolder","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1780,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"ClickstreamFilter.java","lineNumber":61,"className":"com.smec.apps.webtools.clickstream.ClickstreamFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilterInternal","fileName":"OpenSessionInViewFilter.java","lineNumber":174,"className":"org.springframework.orm.hibernate.support.OpenSessionInViewFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":76,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"parsePage","fileName":"PageFilter.java","lineNumber":142,"className":"com.opensymphony.module.sitemesh.filter.PageFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"PageFilter.java","lineNumber":58,"className":"com.opensymphony.module.sitemesh.filter.PageFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"EncodingFilter.java","lineNumber":31,"className":"com.smec.apps.core.setup.filter.EncodingFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"LoginFilter.java","lineNumber":107,"className":"com.smec.apps.sso.filter.LoginFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"HttpServletRequestWrapperFilter.java","lineNumber":62,"className":"org.jasig.cas.client.util.HttpServletRequestWrapperFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"AuthenticationFilter.java","lineNumber":93,"className":"com.smec.apps.oms.common.cas.AuthenticationFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"AbstractTicketValidationFilter.java","lineNumber":167,"className":"org.jasig.cas.client.validation.AbstractTicketValidationFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1767,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doFilter","fileName":"SingleSignOutFilter.java","lineNumber":110,"className":"org.jasig.cas.client.session.SingleSignOutFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"ServletHandler.java","lineNumber":1759,"className":"org.eclipse.jetty.servlet.ServletHandler$CachedChain","nativeMethod":false},{"methodName":"doHandle","fileName":"ServletHandler.java","lineNumber":583,"className":"org.eclipse.jetty.servlet.ServletHandler","nativeMethod":false},{"methodName":"handle","fileName":"ScopedHandler.java","lineNumber":143,"className":"org.eclipse.jetty.server.handler.ScopedHandler","nativeMethod":false},{"methodName":"handle","fileName":"SecurityHandler.java","lineNumber":548,"className":"org.eclipse.jetty.security.SecurityHandler","nativeMethod":false},{"methodName":"doHandle","fileName":"SessionHandler.java","lineNumber":226,"className":"org.eclipse.jetty.server.session.SessionHandler","nativeMethod":false},{"methodName":"doHandle","fileName":"ContextHandler.java","lineNumber":1180,"className":"org.eclipse.jetty.server.handler.ContextHandler","nativeMethod":false},{"methodName":"doScope","fileName":"ServletHandler.java","lineNumber":513,"className":"org.eclipse.jetty.servlet.ServletHandler","nativeMethod":false},{"methodName":"doScope","fileName":"SessionHandler.java","lineNumber":185,"className":"org.eclipse.jetty.server.session.SessionHandler","nativeMethod":false},{"methodName":"doScope","fileName":"ContextHandler.java","lineNumber":1112,"className":"org.eclipse.jetty.server.handler.ContextHandler","nativeMethod":false},{"methodName":"handle","fileName":"ScopedHandler.java","lineNumber":141,"className":"org.eclipse.jetty.server.handler.ScopedHandler","nativeMethod":false},{"methodName":"handle","fileName":"ContextHandlerCollection.java","lineNumber":213,"className":"org.eclipse.jetty.server.handler.ContextHandlerCollection","nativeMethod":false},{"methodName":"handle","fileName":"HandlerCollection.java","lineNumber":119,"className":"org.eclipse.jetty.server.handler.HandlerCollection","nativeMethod":false},{"methodName":"handle","fileName":"HandlerWrapper.java","lineNumber":134,"className":"org.eclipse.jetty.server.handler.HandlerWrapper","nativeMethod":false},{"methodName":"handle","fileName":"Server.java","lineNumber":539,"className":"org.eclipse.jetty.server.Server","nativeMethod":false},{"methodName":"handle","fileName":"HttpChannel.java","lineNumber":333,"className":"org.eclipse.jetty.server.HttpChannel","nativeMethod":false},{"methodName":"onFillable","fileName":"HttpConnection.java","lineNumber":251,"className":"org.eclipse.jetty.server.HttpConnection","nativeMethod":false},{"methodName":"succeeded","fileName":"AbstractConnection.java","lineNumber":283,"className":"org.eclipse.jetty.io.AbstractConnection$ReadCallback","nativeMethod":false},{"methodName":"fillable","fileName":"FillInterest.java","lineNumber":108,"className":"org.eclipse.jetty.io.FillInterest","nativeMethod":false},{"methodName":"run","fileName":"SelectChannelEndPoint.java","lineNumber":93,"className":"org.eclipse.jetty.io.SelectChannelEndPoint$2","nativeMethod":false},{"methodName":"executeProduceConsume","fileName":"ExecuteProduceConsume.java","lineNumber":303,"className":"org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume","nativeMethod":false},{"methodName":"produceConsume","fileName":"ExecuteProduceConsume.java","lineNumber":148,"className":"org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume","nativeMethod":false},{"methodName":"run","fileName":"ExecuteProduceConsume.java","lineNumber":136,"className":"org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume","nativeMethod":false},{"methodName":"runJob","fileName":"QueuedThreadPool.java","lineNumber":671,"className":"org.eclipse.jetty.util.thread.QueuedThreadPool","nativeMethod":false},{"methodName":"run","fileName":"QueuedThreadPool.java","lineNumber":589,"className":"org.eclipse.jetty.util.thread.QueuedThreadPool$2","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":748,"className":"java.lang.Thread","nativeMethod":false}],"errMsg":"RSA 数量不足,RSA总数 200000,OMS已下单数量:47250,FLM已下单数量:0,剩余可下数量为: 152750,Prod ID为:2502A-EA","localizedMessage":null,"message":null,"suppressed":[]}
最新发布
09-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值