[ 
https://issues.apache.org/jira/browse/TOMEE-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Eldridge updated TOMEE-2244:
----------------------------------------
    Description: 
I'm seeing errors when I have the same dependency in an EAR lib which also 
exists in $CATALINA_HOME/lib. When I have the same dependency (regardless of 
version, even if it is the same), I get the following error:

Caused by: java.lang.LinkageError: loader constraint violation: when resolving 
interface method 
"org.apache.logging.log4j.Logger.debug(Ljava/lang/String;[Lorg/apache/logging/log4j/util/Supplier;)V"
 the class loader (instance of 
org/apache/tomee/catalina/TomEEWebappClassLoader) of the current class, 
com/foo/corp/crmsalesleades/CRMSalesLeadESImpl, and the class loader (instance 
of sun/misc/Launcher$AppClassLoader) for the method's defining class, 
org/apache/logging/log4j/Logger, have different Class objects for the type 
[Lorg/apache/logging/log4j/util/Supplier; used in the signature

 

I also had an issue where I had a specific version of org.jvnet.staxes:stax-ex 
included in my EAR (below)

logger=OpenEJB,{},FATAL ERROR: Unknown error in Assembler. Please send the 
following stack trace and this message to 
[[email protected]|mailto:[email protected]] :
 java.lang.IllegalArgumentException

 

This is causing me to only have the ability to utilize those dependencies in 
$CATALINA_HOME/lib, which means I can't use different versions of any of those 
dependencies in my code. This is especially hard when the dependency is 
transitive, I've had to make multiple edits to my gradle file to exclude 
specific dependencies to prevent collision. I do not have this issue with 
regular WAR files as the classes seem to load fine even if they are the same 
dependency, which leads me to believe it's due to an issue between the EAR lib 
classloader and the Tomee classloader. 

  was:
I'm seeing errors when I have the same dependency in an EAR lib which also 
exists in $CATALINA_HOME/lib. When I have the same dependency (regardless of 
version, even if it is the same), I get the following error:

Caused by: java.lang.LinkageError: loader constraint violation: when resolving 
interface method 
"org.apache.logging.log4j.Logger.debug(Ljava/lang/String;[Lorg/apache/logging/log4j/util/Supplier;)V"
 the class loader (instance of 
org/apache/tomee/catalina/TomEEWebappClassLoader) of the current class, 
com/paychex/corp/crmsalesleades/CRMSalesLeadESImpl, and the class loader 
(instance of sun/misc/Launcher$AppClassLoader) for the method's defining class, 
org/apache/logging/log4j/Logger, have different Class objects for the type 
[Lorg/apache/logging/log4j/util/Supplier; used in the signature

 

I also had an issue where I had a specific version of org.jvnet.staxes:stax-ex 
included in my EAR (below)

logger=OpenEJB,{},FATAL ERROR: Unknown error in Assembler. Please send the 
following stack trace and this message to 
[[email protected]|mailto:[email protected]] :
java.lang.IllegalArgumentException

 

This is causing me to only have the ability to utilize those dependencies in 
$CATALINA_HOME/lib, which means I can't use different versions of any of those 
dependencies in my code. This is especially hard when the dependency is 
transitive, I've had to make multiple edits to my gradle file to exclude 
specific dependencies to prevent collision. I do not have this issue with 
regular WAR files as the classes seem to load fine even if they are the same 
dependency, which leads me to believe it's due to an issue between the EAR lib 
classloader and the Tomee classloader. 


> Classloader issues with EAR file
> --------------------------------
>
>                 Key: TOMEE-2244
>                 URL: https://issues.apache.org/jira/browse/TOMEE-2244
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Core Server
>    Affects Versions: 7.0.5
>            Reporter: Christopher Eldridge
>            Priority: Major
>
> I'm seeing errors when I have the same dependency in an EAR lib which also 
> exists in $CATALINA_HOME/lib. When I have the same dependency (regardless of 
> version, even if it is the same), I get the following error:
> Caused by: java.lang.LinkageError: loader constraint violation: when 
> resolving interface method 
> "org.apache.logging.log4j.Logger.debug(Ljava/lang/String;[Lorg/apache/logging/log4j/util/Supplier;)V"
>  the class loader (instance of 
> org/apache/tomee/catalina/TomEEWebappClassLoader) of the current class, 
> com/foo/corp/crmsalesleades/CRMSalesLeadESImpl, and the class loader 
> (instance of sun/misc/Launcher$AppClassLoader) for the method's defining 
> class, org/apache/logging/log4j/Logger, have different Class objects for the 
> type [Lorg/apache/logging/log4j/util/Supplier; used in the signature
>  
> I also had an issue where I had a specific version of 
> org.jvnet.staxes:stax-ex included in my EAR (below)
> logger=OpenEJB,{},FATAL ERROR: Unknown error in Assembler. Please send the 
> following stack trace and this message to 
> [[email protected]|mailto:[email protected]] :
>  java.lang.IllegalArgumentException
>  
> This is causing me to only have the ability to utilize those dependencies in 
> $CATALINA_HOME/lib, which means I can't use different versions of any of 
> those dependencies in my code. This is especially hard when the dependency is 
> transitive, I've had to make multiple edits to my gradle file to exclude 
> specific dependencies to prevent collision. I do not have this issue with 
> regular WAR files as the classes seem to load fine even if they are the same 
> dependency, which leads me to believe it's due to an issue between the EAR 
> lib classloader and the Tomee classloader. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to