geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: classloaders for non-JMS MDBs
Date Mon, 02 Oct 2006 23:03:16 GMT
The code paths look identical to me.  I haven't had time to set up a  
test case.  Can you get set up to debug in openejb and see what is  
happening in openejb EndpointHandler.setupDelivery?  That's where we  
should be setting the application classloader onto the thread.  (I'm  
looking at apache-incubator openejb2 trunk but I think the same code  
applies to all released openejb2 versions)

thanks
david jencks

On Oct 2, 2006, at 3:29 PM, Nathan Mittler wrote:

> Hey guys,
> Does anyone have any more insight as to what may be going on here?
>
> Thanks,
> Nate
>
> On 9/30/06, Nathan Mittler <nathan.mittler@gmail.com> wrote:
> David, Thanks for the response.  Sure thing - I've captured the  
> stack trace from the ejbCreate method of both MDBs.
>
> First, here's the stack trace from the JMS MDB:
>
> java.lang.Exception: Stack trace
>         at java.lang.Thread.dumpStack(Thread.java:1158)
>         at com.test.CourierPositionMDB.ejbCreate 
> (CourierPositionMDB.java:32)
>         at com.test.CourierPositionMDB$$FastClassByCGLIB$ 
> $c60caec2.invoke(<generated>)
>         at org.openejb.slsb.EJBCreateMethod.execute 
> (EJBCreateMethod.java:94)
>         at org.openejb.dispatch.DispatchInterceptor.invoke 
> (DispatchInterceptor.java:72)
>         at  
> org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke 
> (ComponentContextInterceptor.java:56)
>         at org.openejb.mdb.MDBInstanceContext.ejbCreate 
> (MDBInstanceContext.java:153)
>         at org.openejb.mdb.MDBInstanceFactory.createInstance 
> (MDBInstanceFactory.java:72)
>         at org.openejb.util.SoftLimitedInstancePool.acquire 
> (SoftLimitedInstancePool.java:81)
>         at org.openejb.mdb.MDBInstanceInterceptor.invoke 
> (MDBInstanceInterceptor.java:81)
>         at org.openejb.SystemExceptionInterceptor.invoke 
> (SystemExceptionInterceptor.java:82)
>         at org.openejb.mdb.MDBContainer.invoke(MDBContainer.java:242)
>         at org.openejb.mdb.EndpointHandler.invoke 
> (EndpointHandler.java:180)
>         at org.openejb.mdb.EndpointHandler.intercept 
> (EndpointHandler.java:223)
>         at org.openejb.mdb.EndpointProxy$$EnhancerByCGLIB$ 
> $e708dc8a.onMessage(<generated>)
>         at org.activemq.ra.MessageEndpointProxy 
> $MessageEndpointAlive.onMessage(MessageEndpointProxy.java:117)
>         at org.activemq.ra.MessageEndpointProxy.onMessage 
> (MessageEndpointProxy.java:57)
>         at org.activemq.ActiveMQSession.deliver 
> (ActiveMQSession.java:569)
>         at org.activemq.ActiveMQSession.run(ActiveMQSession.java:551)
>         at org.activemq.ra.ServerSessionImpl.run 
> (ServerSessionImpl.java:165)
>         at org.apache.geronimo.connector.work.WorkerContext.run 
> (WorkerContext.java:291)
>         at org.apache.geronimo.pool.ThreadPool$1.run 
> (ThreadPool.java:172)
>         at org.apache.geronimo.pool.ThreadPool 
> $ContextClassLoaderRunnable.run(ThreadPool.java:289)
>         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor 
> $Worker.run(Unknown Source)
>         at java.lang.Thread.run(Thread.java:595)
>
> ... and here's the stack trace from the custom MDB:
>
> java.lang.Exception: Stack trace
>         at java.lang.Thread.dumpStack(Thread.java:1158)
>         at com.test.CourierPositionMDB.ejbCreate 
> (CourierPositionMDB.java:56)
>         at com.test.CourierPositionMDB$$FastClassByCGLIB$ 
> $adae8521.invoke(<generated>)
>         at org.openejb.slsb.EJBCreateMethod.execute 
> (EJBCreateMethod.java:94)
>         at org.openejb.dispatch.DispatchInterceptor.invoke 
> (DispatchInterceptor.java:72)
>         at  
> org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke 
> (ComponentContextInterceptor.java:56)
>         at org.openejb.mdb.MDBInstanceContext.ejbCreate 
> (MDBInstanceContext.java:153)
>         at org.openejb.mdb.MDBInstanceFactory.createInstance 
> (MDBInstanceFactory.java:72)
>         at org.openejb.util.SoftLimitedInstancePool.acquire 
> (SoftLimitedInstancePool.java:81)
>         at org.openejb.mdb.MDBInstanceInterceptor.invoke 
> (MDBInstanceInterceptor.java:81)
>         at org.openejb.SystemExceptionInterceptor.invoke 
> (SystemExceptionInterceptor.java:82)
>         at org.openejb.mdb.MDBContainer.invoke(MDBContainer.java:242)
>         at org.openejb.mdb.EndpointHandler.invoke 
> (EndpointHandler.java:180)
>         at org.openejb.mdb.EndpointHandler.intercept 
> (EndpointHandler.java:223)
>         at org.openejb.mdb.EndpointProxy$$EnhancerByCGLIB$ 
> $224d7765.onCourierPosition(<generated>)
>         at com.test.ra.EndpointWorker$1.run(EndpointWorker.java:109)
>         at org.apache.geronimo.connector.work.WorkerContext.run 
> (WorkerContext.java:291)
>         at org.apache.geronimo.pool.ThreadPool$1.run 
> (ThreadPool.java:172)
>         at org.apache.geronimo.pool.ThreadPool 
> $ContextClassLoaderRunnable.run(ThreadPool.java:289)
>         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor 
> $Worker.run(Unknown Source)
>         at java.lang.Thread.run(Thread.java:595)
>
> Thanks,
> Nate
>
>
>
> On 9/30/06, David Jencks <david_jencks@yahoo.com > wrote:
>
> On Sep 30, 2006, at 8:27 AM, Nathan Mittler wrote:
>
> > Hi,
> > Has anyone created custom connectors with G?
> >
> > I have a two versions of a simple MDB - one that implements
> > javax.jms.MessageListener and one that implements a custom
> > interface.  When onMessage is invoked by the AMQ RAR, I appear to
> > be in the context of the MDB's classloader and can use dependencies
> > specified in the MDB's deployment plan.  However, when I invoke the
> > MDB from a custom connector, it seems to be in the context of the
> > RAR classloader and I don't have access to any of the MDB's
> > dependencies.  I assume that I'm doing something bone-headed in my
> > connector, but I'm not seeing it.  Any ideas?
>
> It oughtta work :-).  I don't think it's your connector.  Would it be
> difficult to get stack traces from the mdbs to see if the paths to
> get to the mdb are different?
>
> thanks
> david jencks
>
> >
> > Thanks for the help,
> > Nate
>
>
>


Mime
View raw message