[jboss-user] [EJB 3.0] - Re: ejb-jar.xml a clear definition for EJB3
oskar.carlstedt
do-not-reply at jboss.com
Thu May 3 05:57:54 EDT 2007
Hello!
No, in general you don't need the ejb-jar.xml. You can include the ejb-jar.xml file if you intend to override settings from given annotations. But in generel, you don't need it.
What you need to do is:
Create a JAR-file with the ejb:s you want to deploy. This file must also include a META-INF/persistence.xml file where you ponit out the datasource you wan't to use. Here is an example:
| <persistence xmlns="http://java.sun.com/xml/ns/persistence"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
| http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
| version="1.0">
| <persistence-unit name="my-ejbs">
| <jta-data-source>
| java:/my-ejbs-DS
| </jta-data-source>
| <properties>
| <!--
| <property name="hibernate.hbm2ddl.auto" value="create-drop" />
| -->
| <property name="show_sql" value="true" />
| <property name="dialect"
| value="org.hibernate.dialect.MySQLDialect" />
| </properties>
| </persistence-unit>
| </persistence>
|
The structure of the final jar file containing the ejb:s is something like:
| /my-ejbs.jar
| /META-INF
| MANIFEST.MF
| persistence.xml
| /my
| /example
| /bean
| MyBean.class
| ...
|
Then you need to create an ear-file. This is not a must, but you get better structure if you deploy your ejbs in an ear file. You still need to specify the META-INF/application.xml file. Here is an example:
| <?xml version="1.0" encoding="UTF-8"?>
| <application
| xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
| version="1.4">
| <description>my application description</description>
| <display-name>my-application</display-name>
|
| <!--
| Point out the ejb jar files as ejb modules
| -->
| <module>
| <ejb>my-ejbs.jar</ejb>
| </module>
|
| <!--
| Point out the war files as web modules
| -->
| <module>
| <web>
| <web-uri>my-service-jaxws-web.war</web-uri>
| <context-root>/my-service-jaxws-web</context-root>
| </web>
| </module>
| </application>
|
A good idea is also to bundle the dependent jar files in the ear file. Place them in the lib folder of the ear file. In the META-INF folder you create a jboss-app.xml file where you tell jboss to use the libs you provide in the ear file. Note that if you do this way and also include a war file in the ear - then make sure you don't have any WEB-INF/libs/... in the war file. Here is an example:
| <!DOCTYPE jboss-app
| PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN"
| "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
| <jboss-app>
| <loader-repository>my-ejbs:app=ejb3</loader-repository>
| </jboss-app>
|
So finally, this is the structure of the ear file:
| my-service.ear
| /my-ejbs.jar
| /lib
| dependency_jar_A.jar
| dependency_jar_B.jar
| ...
| /META-INF
| MANIFEST.MF
| application.xml
| jboss-app.xml
|
Kind regards
Oskar
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4042766#4042766
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4042766
More information about the jboss-user
mailing list