BeanCreationException;嵌套异常为java.lang.IllegalArgument:类不能为null
以下是我的例外:BeanCreationException;嵌套异常为java.lang.IllegalArgument:类不能为null,java,spring,Java,Spring,以下是我的例外: 2015-06-29 09:27:58 [INFO]-[main]-[org.hibernate.impl.SessionFactoryImpl.close(887)]- closing 2015-06-29 09:27:58 [ERROR]-[main]-[org.springframework.web.context.ContextLoader.initWebApplicationContext(308)]- Context initialization failed or
2015-06-29 09:27:58 [INFO]-[main]-[org.hibernate.impl.SessionFactoryImpl.close(887)]- closing
2015-06-29 09:27:58 [ERROR]-[main]-[org.springframework.web.context.ContextLoader.initWebApplicationContext(308)]- Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subjectCcyDao' defined in file [D:\apache-tomcat-6.0.37\wtpwebapps\iEBP4JLSI-SETTLE\WEB-INF\classes\config\applicationContext-sys.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Class must not be null
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalArgumentException: Class must not be null
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.util.ReflectionUtils.findMethod(ReflectionUtils.java:150)
at org.springframework.core.BridgeMethodResolver.searchForMatch(BridgeMethodResolver.java:211)
at org.springframework.core.BridgeMethodResolver.findGenericDeclaration(BridgeMethodResolver.java:149)
at org.springframework.core.BridgeMethodResolver.isBridgeMethodFor(BridgeMethodResolver.java:136)
at org.springframework.core.BridgeMethodResolver.searchCandidates(BridgeMethodResolver.java:104)
at org.springframework.core.BridgeMethodResolver.findBridgedMethod(BridgeMethodResolver.java:78)
at org.springframework.core.annotation.AnnotationUtils.getAnnotation(AnnotationUtils.java:100)
at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:122)
at org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor.isAuthzAnnotationPresent(AuthorizationAttributeSourceAdvisor.java:107)
at org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor.matches(AuthorizationAttributeSourceAdvisor.java:84)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:226)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:263)
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:295)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:117)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:87)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1461)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
... 26 more
但是,这个问题似乎只发生在我的电脑上,这个项目在我同事的电脑上进行得很顺利。
这是我的xml文件:
<bean id="subjectCcyDao" class="com.infohold.bdrp.sys.dao.impl.SubjectCcyDaoImpl" >
<constructor-arg value="com.infohold.bdrp.sys.model.SubjectCcy" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="subjectCcyManager" class="com.infohold.bdrp.sys.service.impl.SubjectCcyManagerImpl">
<constructor-arg ref="subjectCcyDao" />
<property name="subjectCcyDao" ref="subjectCcyDao" />
</bean>
<bean id="subjecCcyAction" class="com.infohold.bdrp.sys.action.SubjecCcyAction" parent="baseAction" scope="prototype">
<property name="subjectCcyManager" ref="subjectCcyManager" />
<property name="subjectDictManager" ref="subjectDictManager" />
</bean>
当我注释掉这个xml时,错误漏掉了。但是我仍然找不到错误。
我整天在谷歌上搜索这个问题,找不到答案。那么,有人能告诉我原因吗?谢谢。如果使用spring integration,您必须创建该类对象的setter方法,并在application context.xml文件中进行配置编辑(2016/02/22):我确认,在我的情况下,此问题已通过迁移到Spring 3.1.4解决
我没有干净的解决办法,但有一些线索 当我从Java1.7.0_75切换到Java1.8.0_74时,这个错误就开始发生了。我怀疑这与Java8附带的反射实现中的更改有关 我们使用Spring 3.1.3,我相信这个问题可以在3.1.4中根据以下内容解决- 当我浏览stacktrace时,我注意到当Spring Security试图在代码中查找
@Secured
注释时,会发生此错误。可以通过将安全注释设置为禁用,来禁用此功能(如果您确实不需要),例如:
<security:global-method-security secured-annotations="disabled" />
您确定类名的拼写正确吗
class="com.infohold.bdrp.sys.action.SubjecCcyAction"
应该是这样吗
class="com.infohold.bdrp.sys.action.SubjectCcyAction"
也就是“subjectct”加上一个“t”,就像其他词一样 检查是否缺少任何属性文件、环境变量或某些数据库初始值