[jboss-user] [EJB 3.0] - Re: Help on EjB 3 Packaging
bustanil
do-not-reply at jboss.com
Tue Dec 26 01:09:26 EST 2006
Hi ALRubinger,
Currently my project has grown from 3 modules to 7 modules.
And my entity classes that is used by more than one session bean is scattered over the 7 jar file. It makes hot deployment running slow and surely slowing the development process. So I tried your setup.
Here's my first packaging build.xml :
| <?xml version="1.0"?>
|
| <!-- ======================================================================= -->
| <!-- JBoss build file -->
| <!-- ======================================================================= -->
|
| <project name="OLIBSE2-SERVER" default="all" basedir=".">
|
| ......
|
| <!-- =================================================================== -->
| <!-- Pack the CIF Module -->
| <!-- =================================================================== -->
| <target name="olibse2-cif" depends="compile">
| <jar jarfile="build/olibse2-cif.ejb3">
| <fileset dir="${build.classes.dir}">
| <include name="com/cip/olibse2/domain/cif/*.class" />
| <include name="com/cip/olibse2/cif/*.class" />
| </fileset>
| <fileset dir="${src.resources}/">
| <include name="META-INF/persistence.xml" />
| </fileset>
| </jar>
| <copy file="build/olibse2-cif.ejb3" todir="${jboss.home}/server/default/deploy" />
| </target>
|
| <!-- =================================================================== -->
| <!-- Pack the CurrentAccount Module -->
| <!-- =================================================================== -->
| <target name="olibse2-ca" depends="compile">
| <jar jarfile="build/olibse2-current.ejb3">
| <fileset dir="${build.classes.dir}">
| <include name="com/cip/olibse2/serahterimamodal/server/domain/*.class" />
| <include name="com/cip/olibse2/funding/saving/server/domain/*.class" />
| <include name="com/cip/olibse2/config/server/domain/*.class" />
| <include name="com/cip/olibse2/funding/current/server/*.class" />
| <include name="com/cip/olibse2/funding/saving/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/OperationResult.class" />
| <include name="com/cip/olibse2/funding/current/server/domain/*.class" />
| <include name="com/cip/olibse2/funding/current/server/exceptions/*.class" />
| <include name="com/cip/olibse2/approval/server/AuthSchema.class" />
| <include name="com/cip/olibse2/security/server/User.class" />
| </fileset>
| <fileset dir="${src.resources}/">
| <include name="META-INF/persistence.xml" />
| </fileset>
| </jar>
| <copy file="build/olibse2-current.ejb3" todir="${jboss.home}/server/default/deploy" />
| </target>
|
| <!-- =================================================================== -->
| <!-- Pack the Configuration Module -->
| <!-- =================================================================== -->
| <target name="olibse2-config" depends="compile">
| <jar jarfile="build/olibse2-config.ejb3">
| <fileset dir="${build.classes.dir}">
| <include name="com/cip/olibse2/serahterimamodal/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/domain/*.class" />
| <include name="com/cip/olibse2/funding/saving/server/domain/*.class" />
| <include name="com/cip/olibse2/config/server/*.class" />
| <include name="com/cip/olibse2/config/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/OperationResult.class" />
| <include name="com/cip/olibse2/approval/server/AuthSchema.class" />
| <include name="com/cip/olibse2/security/server/User.class" />
| </fileset>
| <fileset dir="${src.resources}/">
| <include name="META-INF/persistence.xml" />
| </fileset>
| </jar>
| <copy file="build/olibse2-config.ejb3" todir="${jboss.home}/server/default/deploy" />
| </target>
|
| <!-- =================================================================== -->
| <!-- Pack the Transaction Module -->
| <!-- =================================================================== -->
| <target name="olibse2-tx" depends="compile">
| <jar jarfile="build/olibse2-tx.ejb3">
| <fileset dir="${build.classes.dir}">
| <include name="com/cip/olibse2/serahterimamodal/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/domain/*.class" />
| <include name="com/cip/olibse2/funding/saving/server/domain/*.class" />
| <include name="com/cip/olibse2/transaction/server/*.class" />
| <include name="com/cip/olibse2/transaction/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/OperationResult.class" />
| <include name="com/cip/olibse2/approval/server/AuthSchema.class" />
| <include name="com/cip/olibse2/security/server/User.class" />
| </fileset>
| <fileset dir="${src.resources}/">
| <include name="META-INF/persistence.xml" />
| </fileset>
| </jar>
| <copy file="build/olibse2-tx.ejb3" todir="${jboss.home}/server/default/deploy" />
| </target>
|
| </project>
As you can see, 20 classes under com/cip/olibse2/cif/server/domain/ is used on every module. So, i changed the configuration as you suggested to speed up the hot deployment:
| <!-- =================================================================== -->
| <!-- Pack the Entity Classes -->
| <!-- =================================================================== -->
| <target name="olibse2-entity" depends="compile">
| <jar jarfile="build/olibse2-entity.jar">
| <fileset dir="${build.classes.dir}">
| <include name="com/cip/olibse2/funding/current/server/domain/*.class" />
| <include name="com/cip/olibse2/funding/saving/server/domain/*.class" />
| <include name="com/cip/olibse2/cif/server/domain/*.class" />
| <include name="com/cip/olibse2/security/server/EcUserMenu.class" />
| <include name="com/cip/olibse2/security/server/EcUserMenuId.class" />
| <include name="com/cip/olibse2/transaction/server/domain/*.class" />
| <include name="com/cip/olibse2/config/server/domain/*.class" />
| <include name="com/cip/olibse2/serahterimamodal/server/domain/*.class" />
| </fileset>
| <fileset dir="${src.resources}/">
| <include name="META-INF/persistence.xml" />
| </fileset>
| </jar>
| <copy file="build/olibse2-entity.jar" todir="${jboss.home}/server/default/deploy" />
| </target>
|
| <target name="olibse2-cif-service" depends="compile">
| <jar jarfile="build/olibse2-cif-service.jar">
| <fileset dir="${build.classes.dir}">
| <include name="com/cip/olibse2/cif/server/*.class" />
| <include name="com/cip/olibse2/cif/server/exceptions/*.class" />
| <include name="com/cip/olibse2/approval/server/AuthSchema.class" />
| </fileset>
| <fileset dir="${src.resources}/">
| <include name="META-INF/persistence.xml" />
| </fileset>
| </jar>
| <copy file="build/olibse2-cif-service.jar" todir="${jboss.home}/server/default/deploy" />
| </target>
|
| .... // other services
|
|
The new configuration really made the hot deployment alot faster :D. But one big problem arose :(. The session bean in olibse2-cif-service.jar cannot found the entities which was packed in olibse2-entity.jar. I'have tried using ear configuration with an application.xml, but it didn't solve the problem. Is there anything I missed? Please help.
Best regards,
Bustanil
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3996235#3996235
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3996235
More information about the jboss-user
mailing list