Ok. All of these issues should be fixed.
-David
On Jan 22, 2007, at 4:46 PM, David Blevins wrote:
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