I am trying to use the new EJB3.1 feature where one can deploy an EJB packaged within a .war file.
I am using Maven 2.2.1 to package the EJB module and then dropping the ejb jar in a war module (as a dependency). The final war contains a simple web.xml with no content, and the ejb jar library in the lib directory. However, though the application is deployed correctly, the annotated ejb (@Stateless) is not recognized by the container. I have no ejb-jar.xml descriptor (which I believe is optional in EJB3).
If I deploy the ejb jar on its own (by dropping it in the deploy directory in JBoss) it is deployed an assigned a jndi name.
Am I missing something here?
I found the problem on this one. My web.xml was 2.4 version:
However, for EJBs to be deployed in war packages, it needs to be 3.0 at least:
This was mainly due to the fact that I was creating my war module with a J2EE Maven archetype.