geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: Unable to deploy an EJB3.0 sample app -- Thank you Prasad
Date Tue, 23 Jan 2007 00:46:31 GMT

On Jan 21, 2007, at 1:03 PM, Prasad Kashyap wrote:
> I was able to deploy the app successfully but only after using an
> openejb-jar.xml.
>
> Dain & Blevins,
> On the irc discussion on Sat, 01/20, we thought that an
> openejb-jar.xml is not mandatory. I debugged the builder and realized
> the contrary.
>
> In the EJBModuleBuilder.java, it doesn't check to see if the
> openejb-jar.xml is null or not.
> String openejbJarXml = XmlUtil.loadOpenejbJarXml(object, moduleFile);
> OpenejbJar openejbJar = XmlUtil.unmarshal(OpenejbJar.class,  
> openejbJarXml);
>
> http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo- 
> openejb-builder/src/main/java/org/apache/geronimo/openejb/ 
> deployment/EjbModuleBuilder.java?view=log

On Jan 22, 2007, at 8:56 AM, Prasad Kashyap wrote:
> Jarek,
>
> I had the same error.
>
> Try something like the following in your openejb-jar.xml
>
> <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
> <ejb-deployment ejb-name="Calculator"
>                  deployment-id="samples/calculator/stateless/ 
> CalculatorLocal"
>                  container-id="Default Stateless Container"/>
> </openejb-jar>

First, a very big thank you to Prasad for really digging in this  
weekend helping to find things that needed to be fixed.  All because  
if his input I was able to find what I think are the the last  
remaining gotchas in the EJB deployment system.  I've tried to file  
jiras for everything, so here goes:

The first issue he discovered is with deploying an ejb app with no  
ejb-jar.xml. Geronimo needs that file to determine it's an ejb app,  
so at least an empty one is required to make deployment work.  Here's  
the jira for that:
    http://issues.apache.org/jira/browse/GERONIMO-2770

So to fix that I need to see if there are any annotated beans in the  
jar, which will be hard to do as there is no classloader available in  
the 'createModule' section of the Geronimo deployment system.  I  
racked my brain for a bit and think with a little work to my xbean- 
finder ClassFinder I can do the required sniffing with no classloader  
as it's all ASM-based.  I just need to add a couple methods to report  
that data.  I've filed a jira for that as well:
    http://issues.apache.org/jira/browse/XBEAN-70

The second issue that Prasad found is that you have to had to have an  
openejb-jar element in your geronimo-openejb.xml or the  
EjbModuleBuilder will fail with a null pointer.  This is the issue he  
posted above.  Dain as already fixed that issue and now you can have  
an empty openejb-jar element in your geronimo-openejb.xml.

But I was still surprised about one thing (issue number three).  Even  
having an empty openejb-jar, which is something he tried, *should*  
work.  So I dug a bit more in the code on the openejb side and found  
that the logic goes "if you have an openejb-jar, use it.  If you  
don't have one, create it automatically."  I.e. so adding the empty  
openejb-jar element effectively shut off the auto deploy  
functionality.  We do have the code that can augment an existing  
openejb-jar and add missing definitions automatically, so I've  
created an issue for that one as well.
   http://issues.apache.org/jira/browse/OPENEJB-452

Hope to get these fixed in a couple hours.  Big thank you to Prasad  
for playing detective and finding *all* of these issues.  Rather than  
stopping at the first one, he kept going all the way to the end and  
did what it took to get something working.  Very appreciated and very  
big time saver for me at least as I spent the weekend working on the  
conversion tool and wouldn't have been able to do that without all  
his work on this.

Nice Job, Prasad!

-David








Mime
View raw message