axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Iltchenko, Andrei" <Andrei.Iltche...@nl.compuware.com>
Subject RE: [jira] Commented: (AXIS-1776) Client configuration '.wsdd' fi les not found when packaged in an ejb-jar file.
Date Tue, 25 Jan 2005 15:51:45 GMT
Dims,

If we address the problem in the way you want, we'll have to change the
search order in 'ClassUtils#getResourceAsStream' so that it searches through
the thread context class loader first and only then tries the defining class
loader of 'clazz' (AxisEngine in our context). This might be a more
intrusive and subtle change than adding 'EngineConfigurationFactoryEJB'
given the number of users of the helper, but you know far better of
course...

The current declaration:
     public static InputStream getResourceAsStream(Class clazz, String
resource) {
        InputStream myInputStream = null;

        if(clazz.getClassLoader()!=null) {
            // Try the class loader that loaded this class.
            myInputStream =
clazz.getClassLoader().getResourceAsStream(resource);
        } else {
            // Try the system class loader.
            myInputStream =
ClassLoader.getSystemClassLoader().getResourceAsStream(resource);
        }
        if (myInputStream == null &&
Thread.currentThread().getContextClassLoader() != null) {
            // try the context class loader.
            myInputStream =
Thread.currentThread().getContextClassLoader().getResourceAsStream(resource)
;
        }
        if (myInputStream == null) {
            // if not found in classpath fall back to default
            myInputStream = clazz.getResourceAsStream(resource);
        }
        return myInputStream;
    }

Regards,
Andrei.

-----Original Message-----
From: Davanum Srinivas (JIRA) [mailto:axis-dev@ws.apache.org] 
Sent: Tuesday, January 25, 2005 16:45
To: andrei.iltchenko@nl.compuware.com
Subject: [jira] Commented: (AXIS-1776) Client configuration '.wsdd' files
not found when packaged in an ejb-jar file.

     [
http://issues.apache.org/jira/browse/AXIS-1776?page=comments#action_58043 ]
     
Davanum Srinivas commented on AXIS-1776:
----------------------------------------

Andrei,

is it not enough to just change the order of how we look for the wsdd in the
classpath (see ClassUtils#getResourceAsStream). I'd like to keep the
EngineConfigurationFactoryDefault as-is, get rid of the extra
EngineConfigurationFactoryEJB and change already existing code.

thanks,
dims

> Client configuration '.wsdd' files not found when packaged in an ejb-jar
file.
>
----------------------------------------------------------------------------
--
>
>          Key: AXIS-1776
>          URL: http://issues.apache.org/jira/browse/AXIS-1776
>      Project: Axis
>         Type: Bug
>   Components: Deployment / Registries
>     Versions: current (nightly)
>  Environment: An EJB 2.0 compliant EJB container.
>     Reporter: Andrei Iltchenko
>  Attachments: 1776.jar, 1776.txt, 1776.txt
>
> When run from within an EJB container, Axis cannot find a client
configuration '.wsdd' file when the latter is packaged as part of an ejb-jar
file and the Application server uses distinct class loaders per ejb-jar of a
J2EE application. As a result the default client configuration file from
'org/apache/axis/client/client-config.wsdd' gets picked up, which doesn't
necessarily contain the configuration needed.
> The problem is essentially caused by us not having an
'EngineConfigurationFactory' that is capable of finding resources through
the context class loader. The patch that I am going to supply addresses the
problem and has been tested on WebLogic 8.x and Jboss 3.x.x.

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


-- 
The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it. 


Mime
View raw message