I think we're getting tied up in nomenclature. With ejb3, the only ejbs are session beans and mdbs. Something you annotate with @Entity is not an ejb, just a jpa persistent object. For instance you can put them directly in a web app and they will work fine. You can also have "persistence units" with only jpa entities and a persistence.xml in them that are referenced through manifest classpath of ejb jars or wars. In any case, a jar with only @Entity classes in it will not be recognized as a ejb jar and if you claim it is the ejb deployer will object.

hope this helps
david jencks

On Oct 5, 2007, at 1:01 AM, dbrenck wrote:



djencks wrote:



I haven't looked at the phonebook example in great detail but it
looks to me like the "entity" uses jpa and is not an ejb 2.x entity
bean.  As such, if there are no session beans in the jar, it's no
longer an ejb jar.  If there's an application.xml in the ear that
claims it is, geronimo will probably object.  If you want to use it
as a persistence unit referenced from the war I think you need to put
the jar in the ears lib directory or include a manifest classpath
entry in the war's META-INF/MANIFEST.MF pointing to the jar.

Hope I'm right and that this helps :-)


Yes, and no :-)

We got an EntityBean 3.0 class, a SessionBean class and an Interface
implemented by the SessionBean class.

JPA is used by the SesionBean (not(!) by the EntityBean)

This thing works, cause the EntityBean is found/read and written by the
SessionBean which uses JPA.

Because the EntityBean uses @Entity and other persistance annotations, it should be alright to just remove the SessionBean from the jar (as well as
it's interface class) and deploy the jar then then.
When trying/doing so, the deployer crashes with the given (2 posts above)
exception.
(Yes, i removed the <class> entry from the persistance.xml too, which
mentions the SessionBean.
You can then remove the persistance unit definition, cause no class depends
on it. I tried both ways: remained it and removed it - no difference.)

---

Apart from the example mentioned above, the deployment exception always occurs if an ejb.jar that is to be deployed ONLY contains EntityBeans. Maybe that s a hint where I'm going wrong - although I didn't see something in the
specs for j2ee 5 which sais that any ejb.jar must at least contain one
SessionBean (if u do add just one SessionBean to the ejb.jar the deployer
works fine again).

If someone can setup an example of a simple ejb.jar with just one simple 3.0 EntityBean class which deploys on his geronimo, I would be happy if he made it available for me. So I can check what s wrong with my own ejb.jar or with
my server.

Btw. - I'm running this:
http://www.apache.org/dyn/closer.cgi/geronimo/2.0.1/geronimo- tomcat6-jee5-2.0.1-bin.zip

cheers, dirk
--
View this message in context: http://www.nabble.com/maven--- geronimo-2.0-example-build-problem-tf4496318s134.html#a13055049 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Reply via email to