geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gianny Damour <gianny.dam...@optusnet.com.au>
Subject Re: Geronimo ClassLoader Architecture
Date Sat, 07 Jan 2006 01:08:43 GMT
Hi Lubaki,

This is really weird: I have just done a couple of tests and I have not 
been able to reproduce your problem. Basically, in an EJB I have this code:

        XStream stream = new XStream();
        stream.toXML("test");

In the OpenEJB DD, I have this:

<openejb-jar
    xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0"
    configId="clusteredSFSB"
    parentId="ejbCluster"
    inverseClassloading="true">

    <dependency>
        <groupId>xstream</groupId>
        <type>jar</type>
        <artifactId>xstream</artifactId>
        <version>1.0.2</version>
    </dependency>
   
    <hidden-classes>
        <filter>com.thoughtworks.xstream.XStream</filter>
    </hidden-classes>

I call this EJB from an EJB client like this:
        Properties p = new Properties();
        p.put("java.naming.factory.initial", 
"org.openejb.client.RemoteInitialContextFactory");
        p.put("java.naming.provider.url", "127.0.0.1:4201");
        p.put("java.naming.security.principal", "myuser");
        p.put("java.naming.security.credentials", "mypass");
           
        InitialContext ctx = new InitialContext(p);
        BasicStatefulHome home = (BasicStatefulHome) 
ctx.lookup("client/clustertest/BasicStatefulHome");
        BasicStatefulObject object = home.create();
        object.setState("my state");

The CL of Xtream is the CL of the EJB module. I have remove the 
<dependency> from the OpenEJB DD, a ClassNotFoundError is thrown as 
expected.

Also, note that as inverseClassloading is set to "true", classloading is 
inversed. As a consequence, you do not really need to define a 
hidden-classes element.

Could you please send me a EJB reproducing this problem such that I can 
backtrack it?

Thanks,
Gianny

lubaki nsele wrote:

> Gianny,
>
> Using Geronimo 1.0, I am still having the same issue. Here an example 
> of the config file. It (Geronimo Classloader) did not filter XStream.  
> Similarly with axis..........
>
> Lubaki
>
> <?xml version="1.0"?>
> <openejb-jar
>     xmlns="http://www.openejb.org/xml/ns/openejb-jar"
>     configId="com/nsele/atl/odonEJB"
>     parentId="geronimo/j2ee-server/1.0/car"
>     inverseClassloading="true">
>     
>       <hidden-classes>
>           <filter>com.thoughtworks.xstream.XStream</filter>
>      </hidden-classes>
>     <enterprise-beans>
>         <session>
>             <ejb-name>Odon</ejb-name>
>                      
>             <local-jndi-name>
>                  ejb/OdonHome
>             </local-jndi-name>     
>          <resource-ref>
>              <ref-name>jdbc/dbDS</ref-name>
>              <resource-link>dbDS</resource-link>
>          </resource-ref>
>          </session>
>          <session>
>
>     ------------------------------------------------------------------------
>     From:  /Gianny Damour <gianny.damour@optusnet.com.au>/
>     Reply-To:  /user@geronimo.apache.org/
>     To:  /user@geronimo.apache.org/
>     Subject:  /Re: Geronimo ClassLoader Architecture/
>     Date:  /Tue, 13 Dec 2005 22:53:59 +1100/
>     >Thanks for this test.
>     >
>     >Could you please confirm that the Axis jar is defined as a
>     >dependency or include? If yes, then I'm afraid I will need a sample
>     >EJB module that I could use to track the problem.
>     >
>     >BTW, there is also a "hidden-classes" element which can be used to
>     >declare classes hidden from this configuration:
>     >
>     ><openejb-jar
>     >    xmlns="http://www.openejb.org/xml/ns/openejb-jar"
>     >    configId="com/nsele/atl/odonEJB"
>     >    inverseClassloading="true">
>     >   <hidden-classes>
>     >      <filter>org.apache.axis</filter>
>     >   </hidden-classes>
>     >
>     >Could you please give it a give try?
>     >
>     >Thanks,
>     >Gianny
>     >
>     >lubaki nsele wrote:
>     >
>     >>Gianny, This did not work; it is still loading the parent
>     >>classloader before the child.
>     >>
>     >>1) Tried first the ejb plan   It did not work
>     >>
>     >>2) Tried geronimo-application in the EAR where the ejb is one of
>     >>the modules; It did not work
>     >>
>     >>openejb file
>     >>
>     >>  <?xml version="1.0"?>
>     >><openejb-jar
>     >>     xmlns="http://www.openejb.org/xml/ns/openejb-jar"
>     >>     configId="com/nsele/atl/odonEJB"
>     >>     inverseClassloading="true">
>     >>
>     >>
>     >>  Here is my configuration in geronimo-application.xml in EAR;
>     >>
>     >><?xml version="1.0" encoding="UTF-8"?>
>     >><application
>     >>     xmlns="http://geronimo.apache.org/xml/ns/j2ee/application"
>     >>     xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.0"
>     >>         configId="com/nsele/atl/odon"
>     >>         inverseClassloading="true">
>     >>
>     >>    
>     >>------------------------------------------------------------------------
>     >>     From:  /Gianny Damour <gianny.damour@optusnet.com.au>/
>     >>     Reply-To:  /user@geronimo.apache.org/
>     >>     To:  /user@geronimo.apache.org/
>     >>     Subject:  /Re: Geronimo ClassLoader Architecture/
>     >>     Date:  /Tue, 13 Dec 2005 09:02:06 +1100/
>     >>     >Hi Lubaki,
>     >>     >
>     >>     >You can use the optional attribute "inverseClassloading" at
>     >>the
>     >>     >configuration level to force a child first class loading:
>     >>     >
>     >>     ><openejb-jar
>     >>xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0"
>     >>     >  configId="your id"
>     >>     >  inverseClassloading="true">
>     >>     >
>     >>     >When set to true, classes defined by this configuraton take
>     >>     >precedence over the classes defined by the parent
>     >>configurations.
>     >>     >
>     >>     >Thanks,
>     >>     >Gianny
>     >>     >
>     >>     >
>     >>     >lubaki nsele wrote:
>     >>     >
>     >>     >>Geronimo classloader makes available all classes loaded by
>     >>     >>org/apache/geronimo/Server to his children. This is a huge
>     >>issue
>     >>     >>because Geronimo uses a different library that I am using
>     >>with EJB      >>application. For example, I am usiing axis1.0 and
>     >>Geronimo server
>     >>     >>is using axis-1.3GerXXXX.  This discussion had been
>     >>discussed in
>     >>     >>the following threads
>     >>     >>      
>     >>
>     >>http://mail-archives.apache.org/mod_mbox/geronimo-dev/200506.mbox/%3C8C051B4D-95E3-4876-8941-1D9855BB8003@iq80.com%3E
>     >>     >>
>     >>    
>     >> >>http://blog.gmane.org/gmane.comp.java.geronimo.devel/day=20050617
>     >>     >>   IS anyone knows the fix to this or how to overcome this
>     >>issue?
>     >>     >>  Lubaki
>     >>     >
>     >>     >
>     >>     >
>     >>
>     >
>     >
>



Mime
View raw message