Classloading issues with XFire and JCA
--------------------------------------

                 Key: XFIRE-1082
                 URL: http://jira.codehaus.org/browse/XFIRE-1082
             Project: XFire
          Issue Type: Bug
          Components: Aegis Module
    Affects Versions: 1.2.6
         Environment: Windows, Java 1.5, JBoss 4.2.0
            Reporter: Peter Liljenberg
            Assignee: Dan Diephouse
            Priority: Critical


Java version: 1.5
JBoss version: JBoss 4.2.0GA
XFire version: 1.2.6

I'm having trouble with JBoss and classloading (isolation?).
I have an "architecture" like this:

XFire Servlets for Webservices (packaged as WAR files, containing all JARs 
needed)
JCA for integration with other systems (packaged as RAR files, containing all 
JARs needed)
The WARs and RARs are then packaged in an EAR file which is deployed in JBoss 
(default).

The Webservices use the JCA ConnectionFactory/Connection interfaces to access 
external systems.
Here I encountered the first problem. The Webservices throws ClassCastException 
since the RAR file contains a JAR with the ConnectionFactory/Connection 
interfaces and the Webservice WAR contains the same.
This seems to be a common problem with JCA(?) and the issue was resolved by 
removing the JAR from the WAR files, allowing JBoss to load it from the RAR 
file instead, which intuitively sounds like a bad design for Classloading?

So now we have access to the JCA from the WAR files and it's seems just fine.
Now we want integrate with an external system that is running Webservices, so 
we use XFire as a Client in a JCA connector.

This results in a new ClassCastException when XFire tries to load its 
dependencies.
XFire does Thread.currentThread().getContextClassLoader() to dynamically load 
classes, this returns the Webservice (our WAR) classloader, which is probably 
correct but all other classes in the context is loaded by the RAR classloader.

java.lang.ClassCastException: org.codehaus.xfire.aegis.type.java5.DurationType
        at 
org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.registerIfAvailable(DefaultTypeMappingRegistry.java:434)

Is there a workaround for this?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to