My spring bean xml file contains the following:
+<!-- Transaction Manager when using JNDI datasource --> +
+ <bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/> +
+ <!-- enable the configuration of transactional behavior based on annotations -->+
+ <tx:annotation-driven transaction-manager="transactionManager"/>+
When I deploy my application on WebSphere 6.1 all works well. However, when I change the class loading policy from the default '+classes loaded by parent class loader first+' to '+classes loaded by application class loader first+', I run into java.lang.VerifyError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronizat ion(Ljavax/transaction/Synchronization;)
The full exception trace is shown below:
8/08 17:19:38:953 EDT] 00000028 WebApp E Exception caught while initializing context
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pro.core.deployment_catalog' defined in class path resource http://ca/pro/ui/spring/spring-b ase.xml: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class http: //ca.pro.service.internal.impl.DatabaseXmlDeploymentCatalogue: Constructor threw exception; nested exception is org.springframework.transaction.TransactionSystemException: UOWManager transaction processing failed; nested exception is com.ibm.wsspi.uow.UOWException: java.lang.VerifyError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronizat ion(Ljavax/transaction/Synchronization;)V
+ at org.springframework.beans.factory.support.ConstructorResolver.autowireConstruct or(ConstructorResolver.java:243)+
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.au towireConstructor(AbstractAutowireCapableBeanFactory.java:923)+
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cr eateBeanInstance(AbstractAutowireCapableBeanFactory.java:833)+
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.do CreateBean(AbstractAutowireCapableBeanFactory.java:440)+
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1. run(AbstractAutowireCapableBeanFactory.java:409)+
+ at java.security.AccessController.doPrivileged(AccessController.java:214)+
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cr eateBean(AbstractAutowireCapableBeanFactory.java:380)+
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(Abstr actBeanFactory.java:264)+
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingl eton(DefaultSingletonBeanRegistry.java:217)+
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(Abstrac tBeanFactory.java:261)+
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractB eanFactory.java:185)+
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractB eanFactory.java:164)+
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstant iateSingletons(DefaultListableBeanFactory.java:429)+
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactor yInitialization(AbstractApplicationContext.java:729)+
+ at org.springframework.context.support.AbstractApplicationContext.refresh(Abstract ApplicationContext.java:381)+
+ at org.springframework.web.context.ContextLoader.createWebApplicationContext(Conte xtLoader.java:255)+
+ at org.springframework.web.context.ContextLoader.initWebApplicationContext(Context Loader.java:199)+
+ at org.springframework.web.context.ContextLoaderListener.contextInitialized(Contex tLoaderListener.java:45)+
+ at com.ibm.ws.wswebcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java :645)+
+ at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:31 1)+
+ at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:290)+
+ ...+
+ at com.ibm.ws.management.connector.soap.SOAPConnection.handleRequest(SOAPConnectio n.java:55)+
+ at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:680)+
+ at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:484)+
+ at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)+
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class http: //ca.pro.service.internal.impl.DatabaseXmlDeploymentCatalogue: Constructor threw exception; nested exception is org.springframework.transaction.TransactionSystemException: UOWManager transaction processing failed; nested exception is com.ibm.wsspi.uow.UOWException: java.lang.VerifyError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronizat ion(Ljavax/transaction/Synchronization;)V
+ at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:99)+
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantia te(SimpleInstantiationStrategy.java:87)+
+ at org.springframework.beans.factory.support.ConstructorResolver.autowireConstruct or(ConstructorResolver.java:237)+
+ ... 65 more+
Caused by: org.springframework.transaction.TransactionSystemException: UOWManager transaction processing failed; nested exception is com.ibm.wsspi.uow.UOWException: java.lang.VerifyError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronizat ion(Ljavax/transaction/Synchronization;)V
+ at org.springframework.transaction.jta.WebSphereUowTransactionManager.execute(WebS phereUowTransactionManager.java:259)+
+ at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Trans actionInterceptor.java:123)+
+ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflective MethodInvocation.java:171)+
+ at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy. java:204)+
+ at $Proxy77.getOrganizations(Unknown Source)+
+ at ca.pro.service.internal.impl.DatabaseXmlDeploymentCatalogue.<init>(DatabaseXmlD eploymentCatalogue.java:66)+
+ at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)+
+ at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:67)+
+ at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructor AccessorImpl.java:45)+
+ at java.lang.reflect.Constructor.newInstance(Constructor.java:521)+
+ at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:84)+
+ ... 67 more+
Caused by: com.ibm.wsspi.uow.UOWException: java.lang.VerifyError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronizat ion(Ljavax/transaction/Synchronization;)V
+ at com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW(UOWManagerImpl.java:969)+
+ at com.ibm.ws.uow.UOWManagerImpl.runUnderUOW(UOWManagerImpl.java:509)+
+ at org.springframework.transaction.jta.WebSphereUowTransactionManager.execute(WebS phereUowTransactionManager.java:252)+
+ ... 77 more+
Caused by: java.lang.VerifyError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronizat ion(Ljavax/transaction/Synchronization;)V
+ at org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAda pter.run(WebSphereUowTransactionManager.java:320)+
+ at com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW(UOWManagerImpl.java:948)+
+ ... 79 more+
|
|
|
|
|
|
|
|
|
|
I need to update the class loading policy to application-first due to the an issue with Commons logging.
Any help is much appreciated!