You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2015/08/18 18:33:46 UTC

[jira] [Commented] (DBCP-445) java.lang.NoClassDefFoundError: javax/transaction/SystemException after update

    [ https://issues.apache.org/jira/browse/DBCP-445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14701529#comment-14701529 ] 

Phil Steitz commented on DBCP-445:
----------------------------------

What is strange is that 2.0.1, 2.0, 2.1 all have the same import-package specification.  I don't understand why any 2.x version works in your environment and 2.1.1 does not.

> java.lang.NoClassDefFoundError: javax/transaction/SystemException after update
> ------------------------------------------------------------------------------
>
>                 Key: DBCP-445
>                 URL: https://issues.apache.org/jira/browse/DBCP-445
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: java 8, OSGi
>            Reporter: Flavio Donzé
>
> Updating dbcp in my OSGi application, from 2.0.1 to 2.1.1 I now get the following exception:
> ...
> Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: javax/transaction/SystemException
> 	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1574) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:316) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	... 72 common frames omitted
> Caused by: java.lang.NoClassDefFoundError: javax/transaction/SystemException
> 	at org.apache.commons.dbcp2.managed.LocalXAConnectionFactory.<init>(LocalXAConnectionFactory.java:57) ~[na:na]
> 	at org.apache.commons.dbcp2.managed.BasicManagedDataSource.createConnectionFactory(BasicManagedDataSource.java:139) ~[na:na]
> 	at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2033) ~[na:na]
> 	at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533) ~[na:na]
> 	at com.softmodeler.server.persistence.BasicManagedDataSourceFactory.getBasicManagedDataSource(BasicManagedDataSourceFactory.java:115) ~[na:na]
> 	at com.softmodeler.server.persistence.BasicManagedDataSourceFactory.getObject(BasicManagedDataSourceFactory.java:331) ~[na:na]
> 	at com.softmodeler.server.persistence.BasicManagedDataSourceFactory.getObject(BasicManagedDataSourceFactory.java:1) ~[na:na]
> 	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) ~[org.apache.servicemix.bundles.spring-beans-4.2.0.RELEASE_1.jar:na]
> 	... 77 common frames omitted
> Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException cannot be found by org.apache.commons.dbcp2_2.1.1
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:389) [org.eclipse.osgi_3.10.100.v20150529-1857.jar:na]
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) [org.eclipse.osgi_3.10.100.v20150529-1857.jar:na]
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344) [org.eclipse.osgi_3.10.100.v20150529-1857.jar:na]
> 	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) [org.eclipse.osgi_3.10.100.v20150529-1857.jar:na]
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [na:1.8.0_51]
> 	... 85 common frames omitted
> In my environment I have javax.transaction 1.2, I suspected that since there is no version declared in the Manifest.MF, the JRE package "javax.transaction" is used. 
> Where there is no SystemException.
> So changing the Manifest.MF from  
>  javax.transaction,
>  javax.transaction.xa
> to
>  javax.transaction;version="1.1.0",
>  javax.transaction.xa;version="1.1.0",
> solves the issue.
> Setting it to version 1.1.0 instead of 1.2.0 since there is no sign that 1.2.0 is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)