geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doug Lochart <dloch...@capecomputing.com>
Subject Re: Web Application Migration to Geronimo
Date Sat, 19 May 2007 21:25:44 GMT
David Jencks wrote:
> I don't see any obvious way this could be happening.  I would 
> investigate by putting a breakpoint just before where the exception is 
> thrown and looking at the classloader and what is being loaded in the 
> debugger.
>
Believe it or not I don't use Eclipse or other IDE ... except for the 
debugger aspect I despise them.  My fingers and mind are trained for 
emacs thus I rarely use IDE's unless I need a debugger.  So that being 
said how painful is it to setup geronimo under Eclipse or other 
debugger?  Is there an easy step by step process to do this some where 
posted?  At this point in time I don't really want to take a week just 
to get it running under a debugger.  If it is simple then I will do so.  
Actually if I don't have another option I guess I will have to do so. 

What IDE/Debugger would you suggest is the least painless to use with 
Geronimo?  I tried Eclipse a long time ago and hated the way it forced 
its structure on me.  I don't want to get into a war on IDE's but and 
IDE should never dictate external process or structure.  Okay off my 
soapbox ... any way I happy to do what you suggest.

> Can you think of something that geronimo could do that would make it 
> so you didn't need to debug to solve this problem?
>
Well a thoroughly instrumented flow (as in debug statements) would 
help.  I think this code is JDK 1.5 so you could make use of annotations 
or cglib to intercept methods and add trace debugging that way but just 
entering and leaving methods would not suffice for this problem.  I did 
not see a whole lot of debug statements in the class where the exception 
occurs so I could not see the values for the arguments to the methods 
that were being called.

Maybe on these types of exceptions (class loading) maybe when the log4j 
debug level is set to trace you could possibly create a hierarchical 
dump of the classloaders and what they have as their classpath?  I 
haven't written a classloader in a year or three so I forget what is at 
your disposal but a good environment dump with effective classpath 
information is always helpful.

If you are familiar with Tapestry the exception mechanism is pretty nice 
albeit its geared for a web exception but you get the whole state of the 
system regarding that page and it makes tracing thr problem very easy.
> thanks
> david jencks
>
Thanks David.

I have a question ... if the class that is causing the exception depends 
on another class that is not available to the classloader wil lyou still 
get the same exception or would you  be pointing to the truly offending 
class?   I am just wondering if the tool I am using aggregated all of 
the proper stuff for the task.

> On May 19, 2007, at 7:09 AM, Doug Lochart wrote:
>
>> David or anyone else,
>>
>> Have you had any chance to look at the full stack trace of my 
>> exception yet?  Here it is again.
>>>>
>>>> 12:17:31,183 DEBUG [Configuration] Started configuration 
>>>> france/FrancePolicyServerEar/1.0/car
>>>> 12:17:32,803 DEBUG [Configuration] Stopping configuration 
>>>> france/FrancePolicyServerEar/1.0/car
>>>> 12:17:32,816 ERROR [Deployer] Deployment failed: 
>>>> plan=/mnt/steve_d/Blaze65/deployfrancepolicy/./geronimo-application.xml,

>>>> module=/mnt/steve_d/Blaze65/deployfrancepolicy/FrancePolicyServer.ear
>>>> org.apache.geronimo.common.DeploymentException: Unable to 
>>>> initialize EJBContainer GBean: ejbNameFrancePolicyServer
>>>>        at 
>>>> org.openejb.deployment.SessionBuilder.addEJBContainerGBean(SessionBuilder.java:315)

>>>>
>>>>        at 
>>>> org.openejb.deployment.SessionBuilder.buildBeans(SessionBuilder.java:192)

>>>>
>>>>        at 
>>>> org.openejb.deployment.OpenEJBModuleBuilder.addGBeans(OpenEJBModuleBuilder.java:514)

>>>>
>>>>        at 
>>>> org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke(<generated>)

>>>>
>>>>        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) 
>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)

>>>>
>>>>        at 
>>>> org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$7afc2c82.addGBeans(<generated>)

>>>>
>>>>        at 
>>>> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:562)

>>>>
>>>>        at 
>>>> org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generated>)

>>>>
>>>>        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) 
>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)

>>>>
>>>>        at 
>>>> org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$86e934f4.buildConfiguration(<generated>)

>>>>
>>>>        at 
>>>> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:302)
>>>>        at 
>>>> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:124)
>>>>        at 
>>>> org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>)

>>>>
>>>>        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:338)
>>>>        at 
>>>> org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)

>>>>
>>>>        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)

>>>>
>>>>        at 
>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)

>>>>
>>>>        at 
>>>> org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)

>>>>
>>>>        at 
>>>> com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:231)

>>>>
>>>>        at 
>>>> com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:238)
>>>>        at 
>>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:833)

>>>>
>>>>        at 
>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
>>>>        at 
>>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1423)

>>>>
>>>>        at 
>>>> javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:96)

>>>>
>>>>        at 
>>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1260)

>>>>
>>>>        at 
>>>> java.security.AccessController.doPrivileged(AccessController.java:275)
>>>>        at 
>>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1363)

>>>>
>>>>        at 
>>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:797)

>>>>
>>>>        at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
>>>>        at 
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

>>>>
>>>>        at java.lang.reflect.Method.invoke(Method.java:615)
>>>>        at 
>>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:309)
>>>>        at sun.rmi.transport.Transport$1.run(Transport.java:168)
>>>>        at 
>>>> java.security.AccessController.doPrivileged(AccessController.java:275)
>>>>        at sun.rmi.transport.Transport.serviceCall(Transport.java:164)
>>>>        at 
>>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:506)

>>>>
>>>>        at 
>>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.handleRequest(TCPTransport.java:838)

>>>>
>>>>        at 
>>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:912)

>>>>
>>>>        at java.lang.Thread.run(Thread.java:799)
>>>> Caused by:
>>>> java.lang.NoClassDefFoundError: 
>>>> com.blazesoft.server.deploy.ejb.session.NdStatelessEjbServerBean
>>>>        at java.lang.ClassLoader.defineClassImpl(Native Method)
>>>>        at java.lang.ClassLoader.defineClass(ClassLoader.java:223)
>>>>        at 
>>>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148) 
>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.classloader.JarFileClassLoader.access$200(JarFileClassLoader.java:51)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.classloader.JarFileClassLoader$6.run(JarFileClassLoader.java:275)

>>>>
>>>>        at 
>>>> java.security.AccessController.doPrivileged(AccessController.java:275)
>>>>        at 
>>>> org.apache.geronimo.kernel.classloader.JarFileClassLoader.findClass(JarFileClassLoader.java:227)

>>>>
>>>>        at 
>>>> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:243)

>>>>
>>>>        at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
>>>>        at 
>>>> org.openejb.deployment.StatelessContainerBuilder.buildIt(StatelessContainerBuilder.java:97)

>>>>
>>>>        at 
>>>> org.openejb.deployment.AbstractContainerBuilder.createConfiguration(AbstractContainerBuilder.java:354)

>>>>
>>>>        at 
>>>> org.openejb.deployment.SessionBuilder.addEJBContainerGBean(SessionBuilder.java:313)

>>>>
>>>>        ... 58 more
>>>> 12:17:57,948 DEBUG [ManagerBase] Start expire sessions 
>>>> StandardManager at 1179505077948 sessioncount 0
>>>> 12:17:57,948 DEBUG [ManagerBase] End expire sessions 
>>>> StandardManager processingTime 0 expired sessions: 0
>>>>
>>>>> thanks
>>>>> david jencks
>>>> No ... Thank You !!
>>>>
>>>>
>>>> Doug
>>>>
>>>
>>>
>>
>
>


Mime
View raw message