You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apps-dev@avalon.apache.org by "Daniel S. Haischt" <si...@gmx.net> on 2002/10/12 17:09:50 UTC

[QUESTION] having classloader problems with OpenEJB

hello,

i am having some classloader problems while starting
the OpenEJB block. the message bellow is partitially
a copy of a previous message that i sent to the OpenEJB
list.

i have the following classloader structure ...

                  ----------------
                  | Bootstrap CL |
                  ----------------
                         |
                   -------------
                   | System CL |
                   -------------
                         |
                  ---------------
                  | Phoenix CL  |
                  ---------------
                         |
                  ---------------
                  | EJB Bean CL |
                  ---------------

 1) 'bootstrap ' is the VMs bootstrap loader
 2) 'system' is the VMs system loader (= CLASSPATH)
 3) 'phoenix' is the Phoenix loader that starts
    the OpenEJB remote server (aka the OpenEJB
    block)
 4) 'EJB bean' is the CL that loads the beans in
    'openejb_ejb_tests-0.x.x.jar'.

as documented in the jdk documentation, each CL delegates
class loading requests via loadClass() to its parent CL.

the phoenix classloader contains references to ...

-------8<-------------8<------------8<------------8<-------
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/casto
r-0.9.3.9-xml.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/casto
r-0.9.3.9.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/ejb-1
.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/ejb-2
.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/ichil
li-modules.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/idb_3
.26.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jaas_
1.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jakar
ta-regexp-1.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jca_1
.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jdbc2
_0-stdext.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/JDBC3
Fake.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jdk12
-proxies.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jedi-
1_0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jedi-
plugin-j2ee12.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jms_1
.0.2a.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jndi_
1.2.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/jta_1
.0.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/junit
_3.8.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/log4j
-1.2.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/miner
va.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/opene
jb-0.9.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/opene
jb_client-0.9.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/opene
jb_ejb_tests-0.9.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/opene
jb_server-0.9.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/openo
rb-1.2.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/openo
rb_rmi-1.2.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/openo
rb_tools-1.2.1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/ots-j
ts_1.0.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/poolm
an.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/tyrex
-0.9.8-iiop.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/tyrex
-0.9.8.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/xalan
-2.4.D1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/xerce
sImpl-2.0.2.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/xml-a
pis-2.4.D1.jar
file:/G:/java/phoenix-4.0/work/openejb-block-1034371601252/SAR-INF/lib/xmlPa
rserAPIs-2.0.2.jar
------->8------------->8------------>8------------>8-------

while the EJB Bean CL tries to load beans, the beans CL also
tries to load the common EJB interfaces located in the ejb-1.0.jar file.

because the bean CL only has references to EJBs, it delegates the
loadClass() to its parent class loader, which is in fact the Phoenix
class loader. as shown above that CL contains the EJB interfaces.

Allthough i am getting the following error message while starting the
avalon block for OpenEJB.

-------8<-------------8<------------8<------------8<-------
Root cause: java.lang.NoClassDefFoundError: javax/ejb/EntityBean
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
        at org.openejb.util.SafeToolkit.loadClass(SafeToolkit.java:222)
------->8------------->8------------>8------------>8-------

any ideas on what is going wrong?

With best regards / Mit freundlichen Gruessen

Daniel S. Haischt IT Consulting
______________________________
[revolutionary and alpha geek]

Daniel S. Haischt
Grabenstrasse 11
D-71083 Herrenberg
G E R M A N Y

FON:      +49 -7032-992909
          +49 -700-DHAISCHT
FAX:      +49 -7032-992910
CELLULAR: +49 -172-7668936

email: daniel.haischt@daniel-s-haischt.biz
web:   http://www.daniel-s-haischt.biz

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS dx s:- a- C++ UB++++ P+++ L++++ E W+++ N+++ o-- K- w---
O++ M++ V- PS+ PE++ Y+ PGP++ t+++ 5+ X+++ R+ tv++ b+++ DI+ D+++
G e++ h-- r+ y+++++
------END GEEK CODE BLOCK------



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>