You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "David Jencks (JIRA)" <de...@geronimo.apache.org> on 2005/10/31 20:57:00 UTC

[jira] Closed: (GERONIMO-964) Openejb proxy generation code assumes openejb classes can be loaded by interface's classloader

     [ http://issues.apache.org/jira/browse/GERONIMO-964?page=all ]
     
David Jencks closed GERONIMO-964:
---------------------------------


no one had a better idea

> Openejb proxy generation code assumes openejb classes can be loaded by interface's classloader
> ----------------------------------------------------------------------------------------------
>
>          Key: GERONIMO-964
>          URL: http://issues.apache.org/jira/browse/GERONIMO-964
>      Project: Geronimo
>         Type: Bug
>   Components: OpenEJB
>     Versions: 1.0-M5
>     Reporter: David Jencks
>     Assignee: David Jencks
>      Fix For: 1.0-M5

>
> Openejb proxy generation code assumes that the openejb classes can be loaded by the interface's classloader.  This is false for MEJB if you put the jsr-77 classes in a parent of o/a/g/Server.
> The code is:
>     public CglibEJBProxyFactory(Class superClass, Class clientInterface) {
>         this(superClass, clientInterface, clientInterface.getClassLoader());
>     }
> One workaround would be to see if either the superClass or interface classloader could load both classes and use that one.
> The stack trace is:
> 15:29:28,344 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: objectName="geronimo.server:J2EEApplication=null,EJBModule=org/apache/geronimo/Server,J2EEServer=geronimo,j2eeType=StatelessSessionBean,name=ejb/mgmt/MEJB"
> net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
>         at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:236)
>         at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
>         at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
>         at org.openejb.proxy.CglibEJBProxyFactory.<init>(CglibEJBProxyFactory.java:88)
>         at org.openejb.proxy.CglibEJBProxyFactory.<init>(CglibEJBProxyFactory.java:72)
>         at org.openejb.proxy.CglibEJBProxyFactory.<init>(CglibEJBProxyFactory.java:68)
>         at org.openejb.proxy.EJBProxyFactory.getFactory(EJBProxyFactory.java:303)
>         at org.openejb.proxy.EJBProxyFactory.<init>(EJBProxyFactory.java:129)
>         at org.openejb.proxy.EJBProxyFactory.<init>(EJBProxyFactory.java:97)
>         at org.openejb.proxy.EJBProxyFactory.<init>(EJBProxyFactory.java:92)
>         at org.openejb.mejb.MEJB.<init>(MEJB.java:123)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:875)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:516)
>         at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:210)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:140)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:516)
>         at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:210)
>         at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:246)
>         at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:79)
>         at org.apache.geronimo.system.main.Daemon.main(Daemon.java:309)
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
>         at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:218)
>         ... 26 more
> Caused by: java.lang.NoClassDefFoundError: org/openejb/proxy/SessionEJBObject
>         at java.lang.ClassLoader.defineClass0(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
>         ... 31 more

-- 
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