[jdbcdslog + Wildfly 8.1 + xa-datasource] = java.lang.LinkageError: loader constraint violation...javax/transaction/xa/XAResource

118 views
Skip to first unread message

Sebastian S.

unread,
Jan 7, 2015, 7:02:44 AM1/7/15
to jdbcdslo...@googlegroups.com
Hi,

we are getting the following error using jdbclogds (1.0.5) proxy configured in Wildfly/Jboss 8.1 for an Oracle xa-datasource:

12:35:38,115 ERROR [stderr] (EJB default - 1) Caused by: javax.resource.ResourceException: Could not create connection.....
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/transaction/xa/XAResource"
    at java
.lang.Class.getDeclaredMethods0(Native Method) [rt.jar:1.7.0_60]
    at java
.lang.Class.privateGetDeclaredMethods(Class.java:2570) [rt.jar:1.7.0_60]
    at java
.lang.Class.privateGetPublicMethods(Class.java:2690) [rt.jar:1.7.0_60]
    at java
.lang.Class.getMethods(Class.java:1467) [rt.jar:1.7.0_60]
    at sun
.misc.ProxyGenerator.generateClassFile(ProxyGenerator.java:426) [rt.jar:1.7.0_60]
    at sun
.misc.ProxyGenerator.generateProxyClass(ProxyGenerator.java:323) [rt.jar:1.7.0_60]
    at java
.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:671) [rt.jar:1.7.0_60]
    at java
.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:591) [rt.jar:1.7.0_60]
    at java
.lang.reflect.WeakCache$Factory.get(WeakCache.java:244) [rt.jar:1.7.0_60]
    at java
.lang.reflect.WeakCache.get(WeakCache.java:141) [rt.jar:1.7.0_60]
    at java
.lang.reflect.Proxy.getProxyClass0(Proxy.java:454) [rt.jar:1.7.0_60]
    at java
.lang.reflect.Proxy.newProxyInstance(Proxy.java:736) [rt.jar:1.7.0_60]
    at org
.jdbcdslog.XAConnectionLoggingProxy.wrap(XAConnectionLoggingProxy.java:10)
    at org
.jdbcdslog.DataSourceProxyBase.getXAConnection(DataSourceProxyBase.java:126)
    at org
.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXAManagedConnection(XAManagedConnectionFactory.java:497)
   
... 105 more

The oracle driver is registered as an Jboss/Wildfly module:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
   
<resources>
       
<resource-root path="com.oracle.ojdbc6-11.2.0.jar"/>
   
</resources>
   
<dependencies>    
       
<module name="javax.api"/>
       
<module name="javax.transaction.api">
   
</dependencies>
</module>




jdbcdslog is also registed as an jboss module:

<module xmlns="urn:jboss:module:1.1" name="org.jdbcdslog">
   
<resources>
       
<resource-root path="jdbcdslog-1.0.5.jar"/>
   
</resources>
   
<dependencies>
       
<module name="javax.api"/>
       
<module name="javax.transaction.api"/>
       
<module name="org.slf4j"/>
       
<module name="com.oracle.ojdbc6" optional="true"/>
       
<!-- TODO: add other database modules as other optional dependencies like h2 -->
   
</dependencies>
</module>


Problem seems to be related that the XAResource class is loaded/used from two differenent classloaders/locations:

[Loaded javax.transaction.xa.XAResource from jar:file:/C:/wildfly-8.1.0.Final/modules/system/layers/base/javax/transaction/api/main/jboss-transaction-api_1.2_spec-1.0.0.Final.jar!/]
and
[Loaded javax.transaction.xa.XAResource from C:\Program Files\Java\jdk1.7.0_60\jre\lib\rt.jar]

Any ideas what could be the problem and how to fix this?

Kind regards

Sebastian

Reply all
Reply to author
Forward
0 new messages