Hello everyone!

The whole interaction between this technologies works perfectly but now
I have encountered a problem that I simply don't understand:
I have two bundles: Bundle A defines a datasource and exports it like in
the blog example. Bundle B uses this datasource as jta-data-source.
Corresponding code blocks look like this:

--- JPA DATASOURCE XML ---

<bean id="dataSource" class="org.h2.jdbcx.JdbcDataSource">
<property name="URL" value="jdbc:h2:EDB"/>
</bean>

<bean id="xdataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" init-method="createDataSource">
<property name="driverClassName" value="org.h2.jdbcx.JdbcDataSource" />
<property name="url" value="jdbc:h2:EDB" />
<property name="username" value="" />
<property name="password" value="" />
</bean>

<service id="xaDataSource" ref="xdataSource"
interface="javax.sql.DataSource">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/openengsb"/>
</service-properties>
</service>

--- END JPA DATASOURCE XML ---

--- EDB PERSISTENCE XML ---

<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/openengsb)</jta-data-source>

--- END EDB PERSISTENCE XML ---

If I now use the dataSource in the xaDataSource service everything works
like a charm, but if I want to use the xdataSource suddenly the
exception that I sent as attachment is thrown and I have no idea why
this is happening.

Does someone have an idea?

Kind regards
Felix


org.openengsb.core.api.edb.EDBException: Failed to commit transaction to DB
        at 
org.openengsb.core.edb.internal.JPADatabase.commit(JPADatabase.java:148)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at 
org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)
        at 
org.apache.aries.blueprint.proxy.Collaborator.invoke(Collaborator.java:91)
        at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)
        at org.openengsb.core.edb.internal.$JPADatabase67988972.commit(Unknown 
Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at 
org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)
        at 
org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31)
        at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)
        at $Proxy28.commit(Unknown Source)
        at 
org.openengsb.core.bla.internal.TestClient.startUp(TestClient.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226)
        at 
org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:824)
        at 
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:636)
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:724)
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Caused by: <openjpa-2.1.0-r422266:1071316 nonfatal general error> 
org.apache.openjpa.persistence.PersistenceException: The DataSource 
osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/openengsb) could 
not be used.
        at 
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:219)
        at 
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
        at 
org.apache.aries.jpa.container.impl.CountingEntityManagerFactory.createEntityManager(CountingEntityManagerFactory.java:70)
        at 
org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:131)
        at 
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:83)
        at 
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:278)
        at 
org.openengsb.core.edb.internal.JPADatabase.commit(JPADatabase.java:123)
        ... 39 more
Caused by: java.lang.RuntimeException: The DataSource 
osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/openengsb) could 
not be used.
        at 
org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getDs(DelayedLookupDataSource.java:59)
        at 
org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getConnection(DelayedLookupDataSource.java:74)
        at 
org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:131)
        at 
org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:106)
        at 
org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
        at 
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:603)
        at 
org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1510)
        at 
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:518)
        at 
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:443)
        at 
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
        at 
org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
        at 
org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
        at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:949)
        at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:940)
        at 
org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:637)
        at 
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:204)
        ... 47 more
Caused by: javax.naming.NameNotFoundException: 
osgi:service/javax.sql.DataSource/"(osgi.jndi.service.name=jdbc/openengsb)"
        at 
org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:110),
 
        at 
org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:141),
 
        at 
org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161), 
javax.naming.InitialContext.lookup(InitialContext.java:409),
        at 
org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getDs(DelayedLookupDataSource.java:55),
        at 
org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getConnection(DelayedLookupDataSource.java:74),
        at 
org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:131),
        at 
org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:106),
        at 
org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91),
        at 
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:603),
        at 
org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1510),
        at 
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:518),
        at 
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:443),
        at 
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104),
        at 
org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68),
        at 
org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83),
        at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:949),
        at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:940),
        at 
org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:637),
 
        at 
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:204),
        at 
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156),
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227),
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60),
        at 
org.apache.aries.jpa.container.impl.CountingEntityManagerFactory.createEntityManager(CountingEntityManagerFactory.java:70),
        at 
org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:131),
        at 
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:83),
        at 
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:278),
 
        at 
org.openengsb.core.edb.internal.JPADatabase.commit(JPADatabase.java:123), 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), 
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57), 
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43),
 
        at java.lang.reflect.Method.invoke(Method.java:616), 
        at 
org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50), 
        at 
org.apache.aries.blueprint.proxy.Collaborator.invoke(Collaborator.java:91), 
        at 
org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78), 
        at 
org.openengsb.core.edb.internal.$JPADatabase1669799792.commit(Unknown Source), 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), 
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57), 
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43),
 
        at java.lang.reflect.Method.invoke(Method.java:616), 
        at 
org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50), 
        at 
org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31), 
        at 
org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78), 
        at $Proxy22.commit(Unknown Source), 
        at 
org.openengsb.core.bla.internal.TestClient.startUp(TestClient.java:35), 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), 
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57), 
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43),
 
        at java.lang.reflect.Method.invoke(Method.java:616), 
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226),
 
        at 
org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:824), 
        at 
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:636),
 
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:724),
 
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64), 
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219),
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147),
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640),
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331),
 
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227),
 
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471), 
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334), 
        at java.util.concurrent.FutureTask.run(FutureTask.java:166), 
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165),
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266),
 
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110),
 
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603),
 
        at java.lang.Thread.run(Thread.java:636)]


Reply via email to