gadams00
Jan 13th, 2012, 06:33 PM
I've been banging my head against this issue for a couple days now.
I'm working on a web application that uses Spring and we just upgraded from Spring 2.5.5 to 3.1.0. We're encountering some kind of error related to AOP on Websphere only, not on Weblogic and not on Tomcat.
The exception happens during Spring ApplicationContext initialization and results in an exception like this:
org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'Hipaa5010Processor' defined in class path resource [lassen_objects_config.xml]: Cannot resolve reference to bean 'SecurityService' while setting bean property 'securityService'; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'SecurityService' defined in class path resource [lassen_objects_config.xml]:
...
Cannot resolve reference to bean 'careRadiusReportRequestQueue' while setting bean property 'reportRequestQueue'; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'careRadiusReportRequestQueue': Post-processing of the FactoryBean's object failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.landacorp.lib.business.StatelessObject [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveReference(BeanDefinitio nValueResolver.java:328)
...
Caused by: org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'careRadiusReportRequestQueue': Post-processing of the FactoryBean's object failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.landacorp.lib.business.StatelessObject [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.FactoryB eanRegistrySupport.doGetObjectFromFactoryBean(Fact oryBeanRegistrySupport.java:165)
at org.springframework.beans.factory.support.FactoryB eanRegistrySupport.getObjectFromFactoryBean(Factor yBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.Abstract BeanFactory.getObjectForBeanInstance(AbstractBeanF actory.java:1441)
at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:305 )
at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveReference(BeanDefinitio nValueResolver.java:322)
... 190 more
Caused by: java.lang.IllegalArgumentException: warning no match for this type name: com.landacorp.lib.business.StatelessObject [Xlint:invalidAbsoluteTypeName]
at org.aspectj.weaver.tools.PointcutParser.parsePoint cutExpression(PointcutParser.java:301)
at org.springframework.aop.aspectj.AspectJExpressionP ointcut.buildPointcutExpression(AspectJExpressionP ointcut.java:207)
at org.springframework.aop.aspectj.AspectJExpressionP ointcut.getFallbackPointcutExpression(AspectJExpre ssionPointcut.java:358)
at org.springframework.aop.aspectj.AspectJExpressionP ointcut.getShadowMatch(AspectJExpressionPointcut.j ava:409)
...
The careRadiusReportRequestQueue is a jndi-lookup bean for a jms queue:
<jee:jndi-lookup id="careRadiusReportRequestQueue"
jndi-name="java:comp/env/com/landacorp/jms/dest/CareRadiusReportRequestQueue" />
I don't think the error is even related to this bean, it seems to be coming from an aop pointcut, and we only have place in our spring config files where that's used:
<aop:config>
<aop:aspect id="jcsPreAspect" ref="jcsPreAdvice" >
<aop:pointcut id="jcsPreAdvisor" expression="target(com.landacorp.lib.business.StatelessObject) || target(com.landacorp.lib.business.TransactionalObj ect) || target(com.landacorp.lassen.userdefinedwindow.RunU serDefinedWindow) || target(com.landacorp.lassen.clinicaldata.ClinicalM etricsManagementObject)" />
<aop:around pointcut-ref="jcsPreAdvisor" method="invoke" />
</aop:aspect>
<aop:aspect id="jcsPostAspect" ref="jcsPostAdvice" >
<aop:pointcut id="jcsPostAdvisor" expression="target(com.landacorp.lib.business.StatelessObject) || target(com.landacorp.lib.business.TransactionalObj ect) || target(com.landacorp.lib.business.TransactionServi ce) || target(com.landacorp.lassen.userdefinedwindow.RunU serDefinedWindow) || target(com.landacorp.lassen.clinicaldata.ClinicalM etricsManagementObject)" />
<aop:around pointcut-ref="jcsPostAdvisor" method="invoke" />
</aop:aspect>
</aop:config>
This configuration seems valid, to me, and this is further support by the lack of a problem on Weblogic and Tomcat platforms. I've searched various forums for any similar problems and have tried the following things:
1. made sure that all jars (including those containing com.landacorp.com.lib.business.StatelessObject and all spring and aspectj code) are at the WAR/WEB-INF/lib level, since there's apparently some problem with packaging those at the ear level - no change.
2. defined a shared library in Websphere for aspectjrt.jar, with and without isolated classloader checked, and referenced that in my application deployment - no change
Anyone have any ideas?
I'm working on a web application that uses Spring and we just upgraded from Spring 2.5.5 to 3.1.0. We're encountering some kind of error related to AOP on Websphere only, not on Weblogic and not on Tomcat.
The exception happens during Spring ApplicationContext initialization and results in an exception like this:
org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'Hipaa5010Processor' defined in class path resource [lassen_objects_config.xml]: Cannot resolve reference to bean 'SecurityService' while setting bean property 'securityService'; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'SecurityService' defined in class path resource [lassen_objects_config.xml]:
...
Cannot resolve reference to bean 'careRadiusReportRequestQueue' while setting bean property 'reportRequestQueue'; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'careRadiusReportRequestQueue': Post-processing of the FactoryBean's object failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.landacorp.lib.business.StatelessObject [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveReference(BeanDefinitio nValueResolver.java:328)
...
Caused by: org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'careRadiusReportRequestQueue': Post-processing of the FactoryBean's object failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.landacorp.lib.business.StatelessObject [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.FactoryB eanRegistrySupport.doGetObjectFromFactoryBean(Fact oryBeanRegistrySupport.java:165)
at org.springframework.beans.factory.support.FactoryB eanRegistrySupport.getObjectFromFactoryBean(Factor yBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.Abstract BeanFactory.getObjectForBeanInstance(AbstractBeanF actory.java:1441)
at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:305 )
at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveReference(BeanDefinitio nValueResolver.java:322)
... 190 more
Caused by: java.lang.IllegalArgumentException: warning no match for this type name: com.landacorp.lib.business.StatelessObject [Xlint:invalidAbsoluteTypeName]
at org.aspectj.weaver.tools.PointcutParser.parsePoint cutExpression(PointcutParser.java:301)
at org.springframework.aop.aspectj.AspectJExpressionP ointcut.buildPointcutExpression(AspectJExpressionP ointcut.java:207)
at org.springframework.aop.aspectj.AspectJExpressionP ointcut.getFallbackPointcutExpression(AspectJExpre ssionPointcut.java:358)
at org.springframework.aop.aspectj.AspectJExpressionP ointcut.getShadowMatch(AspectJExpressionPointcut.j ava:409)
...
The careRadiusReportRequestQueue is a jndi-lookup bean for a jms queue:
<jee:jndi-lookup id="careRadiusReportRequestQueue"
jndi-name="java:comp/env/com/landacorp/jms/dest/CareRadiusReportRequestQueue" />
I don't think the error is even related to this bean, it seems to be coming from an aop pointcut, and we only have place in our spring config files where that's used:
<aop:config>
<aop:aspect id="jcsPreAspect" ref="jcsPreAdvice" >
<aop:pointcut id="jcsPreAdvisor" expression="target(com.landacorp.lib.business.StatelessObject) || target(com.landacorp.lib.business.TransactionalObj ect) || target(com.landacorp.lassen.userdefinedwindow.RunU serDefinedWindow) || target(com.landacorp.lassen.clinicaldata.ClinicalM etricsManagementObject)" />
<aop:around pointcut-ref="jcsPreAdvisor" method="invoke" />
</aop:aspect>
<aop:aspect id="jcsPostAspect" ref="jcsPostAdvice" >
<aop:pointcut id="jcsPostAdvisor" expression="target(com.landacorp.lib.business.StatelessObject) || target(com.landacorp.lib.business.TransactionalObj ect) || target(com.landacorp.lib.business.TransactionServi ce) || target(com.landacorp.lassen.userdefinedwindow.RunU serDefinedWindow) || target(com.landacorp.lassen.clinicaldata.ClinicalM etricsManagementObject)" />
<aop:around pointcut-ref="jcsPostAdvisor" method="invoke" />
</aop:aspect>
</aop:config>
This configuration seems valid, to me, and this is further support by the lack of a problem on Weblogic and Tomcat platforms. I've searched various forums for any similar problems and have tried the following things:
1. made sure that all jars (including those containing com.landacorp.com.lib.business.StatelessObject and all spring and aspectj code) are at the WAR/WEB-INF/lib level, since there's apparently some problem with packaging those at the ear level - no change.
2. defined a shared library in Websphere for aspectjrt.jar, with and without isolated classloader checked, and referenced that in my application deployment - no change
Anyone have any ideas?