[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