Thanks David.
I filed JIRA 2120:
If I distribute the jar, then distribute the war, I get the same problem.
On war distribution, the jar config gets started...

On 6/13/06, Ted Kirby <> wrote:
I think this is a geronimo problem. 
ProxyInfo is in openejb-core.jar, which is in the classpath of both openejb & openejb-deployer configs.
I define an ejb in an MDBDemo config (see attached openejb-jar.xml).
Through deployment, the openejb-deployer classloader is used for ProxyInfo.
The config is then stopped and serialized.
When it is subsequently started (all as part of my deploy from the command line),
the openejb classloader is used for ProxyInfo.
Next, I deploy an MDBDemoWar config (see attached geronimo-web.xml) from the command-line deployer.  I get the traceback below.
The ProxyInfo from gbeanData.getAttribute("proxyInfo") is from the openejb class loader,
whereas the ProxyInfo from OpenEJBReferenceBuilder is from the openejb-deployer class loader.
Hence, the ClassCastException.
I put some tracing in, including printing out the classloader info to make these determinations.
It seems that, based on this, a restriction is that you can't refer to an ejb in another configuration?

On 6/5/06, Ted Kirby <> wrote:

I upgraded the plans from the sample, and have attached them to this note.

When I deploy the messaging war file, I get:

 Error: Unable to distribute messaging-ejb-1.1-SNAPSHOT.war:
 java.lang.ClassCastException: org.openejb.proxy.ProxyInfo


I also get an error and long traceback in server log, which starts with:

15:51:11,689 ERROR [Deployer] Deployment failed due to
java.lang.ClassCastException: org.openejb.proxy.ProxyInfo
 at org.openejb.deployment.OpenEJBReferenceBuilder.checkRemoteProxyInfo( :121)
 at org.openejb.deployment.OpenEJBReferenceBuilder.createEJBRemoteRef(
 at org.openejb.deployment.OpenEJBReferenceBuilder$$FastClassByCGLIB$$bfd62c9f.invoke(<generated>)
 at net.sf.cglib.reflect.FastMethod.invoke( Compiled Code))
 at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke( Code))
 at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke ( Compiled Code))
 at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke( Code))
 at org.apache.geronimo.gbean.runtime.RawInvoker.invoke( Compiled Code))
 at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke( Code))
 at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept( Code))
 at org.apache.geronimo.j2ee.deployment.EJBReferenceBuilder$$EnhancerByCGLIB$$3716d4c8.createEJBRemoteRef(<generated>)
 at org.apache.geronimo.j2ee.deployment.RefContext.getEJBRemoteRef(
 at org.apache.geronimo.naming.deployment.ENCConfigBuilder.addEJBRef(
 at org.apache.geronimo.naming.deployment.ENCConfigBuilder.addEJBRefs(
 at org.apache.geronimo.naming.deployment.ENCConfigBuilder.buildComponentContext (
 at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.buildComponentContext(
 at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans( :288)
 at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder$$FastClassByCGLIB$$6f85ec2c.invoke(<generated>)
 at net.sf.cglib.reflect.FastMethod.invoke( Compiled Code))