jate sun
jate sun

Reputation: 53

BeanCreationException;nested exception is java.lang.IllegalArgument:Class must not be null

here is my exception:

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

But,this problem seems only occurred in my computer,the project goes well in my colleague's computer. This is my xml file:

<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>

When I comment out this xml,the error missed.But i still can't find out the error. I google this problem all day long and can't find the answer.So,can anyone tell me the reason?Thank you.

Upvotes: 2

Views: 6818

Answers (3)

gargii
gargii

Reputation: 1130

EDIT (2016/02/22): I confirm that in my case this issue has been solved by migrating to Spring 3.1.4


I have no clean solution, but have some clues.

This error started to happen when I switched from Java 1.7.0_75 to Java 1.8.0_74. I suspect it has something to do with changes in a reflections implementation coming with Java 8.

We use Spring 3.1.3 and I believe this issue might be fixed in 3.1.4 according to this - https://jira.spring.io/browse/SPR-9330

When I explored the stacktrace I noticed this error occurs when the Spring Security tries to find @Secured annotations in your code. This can be disabled (if you don't really need it) by setting secured-annotations to disabled, e.g.:

<security:global-method-security secured-annotations="disabled" />

Upvotes: 2

whistling_marmot
whistling_marmot

Reputation: 3883

Are you sure that the class name has the correct spelling?

class="com.infohold.bdrp.sys.action.SubjecCcyAction"

Should that be

class="com.infohold.bdrp.sys.action.SubjectCcyAction"

That is 'Subject' with a 't', like the others.

Upvotes: 0

Chandu D
Chandu D

Reputation: 501

if you are using spring integration you have to create setter method of that class object and configure in application context.xml file

Upvotes: 0

Related Questions