axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepal Jayasinghe (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (AXIS2-1047) Axis2 deployment cannot support isolated classloading of the axis2 runtime against application code
Date Tue, 22 Aug 2006 08:04:14 GMT
     [ http://issues.apache.org/jira/browse/AXIS2-1047?page=all ]

Deepal Jayasinghe reassigned AXIS2-1047:
----------------------------------------

    Assignee: Deepal Jayasinghe

> Axis2 deployment cannot support isolated classloading of the axis2 runtime against application
code
> ---------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1047
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1047
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: deployment
>    Affects Versions: 1.0
>            Reporter: Raymond Feng
>         Assigned To: Deepal Jayasinghe
>
> In most of the Axis2 code, thread context classloader (TCCL) is used to resolve class
by name as follows.
>         Class.forName(clasName, true, Thread.currentThread().getContextClassLoader());
> For example, AxisConfigBuilder uses it to resolve TransportReceiver and TransportSender.
Please note the class can be suppiled by the application or by Axis2 (default).
> This approach works well in the following two cases:
> 1) The class is provided by the application and it's visible to the TCCL.
> 2) The class is provided by Axis2 and the axis2 is loaded by either the application classloader
or any ancestor of the application classloader.
> We have a different use case. (similar as tomcat)
> 1) We load axis2 together with our library from an isolated classloader (CL1)
> 2) The application is running with its own classloader (TCCL=CL2)
> 3) CL2 cannot see classes in CL1
> As a result, we got a ClassCastException for the Transport receiver and sender even they
are from the Axis2. Would it make sense to support this case using the following:
> Class cls = null;
> try{
>       cls = Class.forName(clasName, true, Thread.currentThread().getContextClassLoader());
// Try the application class loader
> } catch (ClassNotFoundException e) {
>       cls = Class.forName(className); // Try the axis2 classloader
> }
> Thanks,
> Raymond

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message