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: Web Application Migration to Geronimo
Date Sun, 20 May 2007 08:33:38 GMT

On May 19, 2007, at 2:25 PM, Doug Lochart wrote:

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

I use intellij IDEA and really like it.  After about an hour I  
abandoned my years of emacs use and haven't looked back for java  
code.  If you can get a copy (I think they have a free trial) run

mvn idea:idea

and open the project file this generates in IDEA.  When you stop at a  
breakpoint you can use "Evaluate Expression" in the run menu to try  
loading various classes in the available classloaders and probably  
figure out what is going on pretty quickly.
>
>> 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.

I'm not thrilled with the message from NCDFE: I would prefer it told  
you what class it was trying to load when it couldn't load the class  
it complains about.  This might be what you mean too :-)  Anyway I  
think you will figure out what is wrong pretty quickly if you can get  
to the point where the error occurs in a debugger.

thanks
david jencks


>
>> 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.buildConfigur 
>>>>> ation(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.doPrivilegedOperatio 
>>>>> n(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.findClas 
>>>>> s(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.createConfiguratio 
>>>>> n(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