打包

来源:互联网 发布:grub4dos linux 编辑:程序博客网 时间:2024/04/30 08:32
 
  1. 1.在业务层接口上增加ejb描述符   
  2. 如下:   
  3. /**   
  4.  * @ejb:bean   
  5.  *      ejb-name="CardBo"  
  6.  *      type="Stateless"  
  7.  *      service-package="oss.rms.inventory.instance.node.business"  
  8.  *      business-interface="ICardBo"  
  9.  *      helper-beans-id="cardBo"  
  10.  *   
  11.  * @weblogic:pool   
  12.  *      initial-beans-in-free-pool="5"  
  13.  *      max-beans-in-free-pool="1000"  
  14.  */   
  15.   
  16.   
  17. 其中:   
  18.     ejb-name是ejb的名字,有接口类的名字去掉“I”构成。   
  19.     type="Stateless"是建立无状态会话Bean。   
  20.     business-interface是业务接口的类名。   
  21.     helper-beans-id是接口在spring中注入的bean名。   
  22.   
  23. 2。用xdoclet生成ejb类:   
  24.  ant脚本中   
  25.     <target name="ejbdoclet" depends="clean-ejb,init">  
  26.         <pojoejbdoclet  
  27.                 destdir="${gen-src.dir}"  
  28.                 mergedir="{merge.dir}"  
  29.                 excludedtags="@version,@author,@todo,@file_name,@date,@reviewed_by,@description,@see"  
  30.                 addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}"  
  31.                 ejbspec="2.0"  
  32.                 force="${xdoclet.force}"  
  33.                 verbose="false"  
  34.                 >  
  35.   
  36.             <fileset dir="${src.home}">  
  37.                 <include name="**/business/*.java"/>  
  38.             </fileset>  
  39.   
  40.             <!--packageSubstitution packages="business.impl" substituteWith="service.ejb" /-->  
  41.   
  42.             <pojoremoteinterface/>  
  43.             <pojohomeinterface/>  
  44.             <pojosession/>  
  45.   
  46.             <pojodeploymentdescriptor  
  47.                     destdir="${meta-inf.dir}"  
  48.                     validatexml="true"  
  49.                     mergedir="${merge.dir}"  
  50.                     description=""  
  51.                     >  
  52.             </pojodeploymentdescriptor>  
  53.   
  54.             <pojoejbbeans  
  55.                     destdir="${ejbclient.dir}"  
  56.                     mergedir="${merge.dir}"  
  57.                     validatexml="true"  
  58.                     >  
  59.             </pojoejbbeans>  
  60.             <weblogic  
  61.                     version="7.0"  
  62.                     xmlencoding="UTF-8"  
  63.                     destdir="${meta-inf.dir}"  
  64.                     validatexml="false"  
  65.                     datasource="java:/trmsDataSource"  
  66.                     mergedir="${merge.dir}"  
  67.                     persistence="weblogic"  
  68.                     />  
  69.   
  70.         </pojoejbdoclet>  
  71.     </target>  
  72. 3。编译文件:   
  73.    ant脚本如下:   
  74.     <target name="compile" depends="ejbdoclet">  
  75.         <javac fork="yes" memoryinitialsize="128M" memorymaximumsize="512M"    
  76.            destdir="${classes.home}" debug="yes" includes="**/*.java" executable="javac" compiler="javac1.5">  
  77.             <compilerarg   line="-g:none   -nowarn -J-Duser.language=en"/>  
  78.             <src path="${src.home}"/>  
  79.             <src path="${gen-src.dir}"/>  
  80.             <classpath refid="all-libs"/>  
  81.         </javac>  
  82.         <copy todir="${classes.home}" >  
  83.             <fileset dir="${src.home}" includes="**/*.xml"/>  
  84.             <fileset dir="${src.home}" includes="**/*.properties"/>  
  85.             <fileset dir="${src.home}" includes="**/*.jpg"/>  
  86.             <fileset dir="${src.home}" includes="**/*.png"/>  
  87.             <fileset dir="${src.home}" includes="**/*.gif"/>  
  88.             <fileset dir="${conf.home}" includes="**/*.xml"/>  
  89.             <fileset dir="${conf.home}" includes="**/*.properties"/>  
  90.             <fileset dir="${gen-src.dir}" includes="**/*.xml"/>  
  91.             <fileset dir="${gen-src.dir}" includes="**/*.properties"/>  
  92.         </copy>  
  93.     </target>  
  94. 4。打包ejb的服务端和客户端:   
  95.     <!--服务端-->  
  96.     <target name="buildServer" depends="compile">  
  97.         <!-- build ejb jar -->  
  98.         <copy todir="${target.ejb}" includeEmptyDirs="false" preservelastmodified="yes">  
  99.             <fileset dir="${classes.home}">  
  100.                 <include name="log4j.properties"/>  
  101.                 <include name="META-INF/*.xml"/>  
  102.                 <include name="/**/*"/>  
  103.             </fileset>  
  104.         </copy>  
  105.   
  106.         <!--打ejb服务端的包-->  
  107.         <jar destfile="${deploy.home}/${ejb.file}" basedir="${target.ejb}" >  
  108.             <manifest>  
  109.                 <attribute name="Class-Path" value="./"/>  
  110.             </manifest>  
  111.         </jar>  
  112.   
  113.     </target>  
  114.        
  115.   
  116.     <!--客户端-->  
  117.     <target name="buildClient" depends="buildServer">  
  118.         <copy todir="${target.ejb}" includeEmptyDirs="false" preservelastmodified="yes">  
  119.             <fileset dir="${classes.home}">  
  120.                 <!--为了生成stub文件,把客户端加上ejb描述文件-->  
  121.                 <include name="META-INF/*.xml"/>  
  122.                 <include name="/**/*"/>  
  123.             </fileset>  
  124.         </copy>  
  125.         <jar destfile="${deploy.home}/${ejbclient.file}" basedir="${target.ejb}" update="true">  
  126.             <manifest>  
  127.                 <attribute name="Class-Path" value="./"/>  
  128.             </manifest>  
  129.         </jar>  
  130.     </target>  
  131.   
  132. 4。生成客户端的stub文件:   
  133.        
  134.     <target name="appc" >  
  135.         <echo message="compiling using appc..."/>  
  136.         <java classname="weblogic.appc" fork="yes"  >  
  137.             <arg line="  -keepgenerated -lineNumbers -g -verbose  ${deploy.home}/trmsEJBClient.jar "  />  
  138.             <!--all-libs-->            
  139.             <classpath refid="all-libs"/>  
  140.             <jvmarg value="-Xmx512M"/>  
  141.         </java>  
  142.     </target>  
  143.   
  144.     //注意这里java命令和javac命令开堆栈的方式不一样。   
  145. 5。把服务端部署到weblogic上,如果是jdk1.5的程序往jdk1.4上部署,需要把代码编译成jdk1.4版本。可以使用Retrotranslator-1.2.2-bin。   
  146. 执行命令:java -Xms256m -Xmx512m -jar retrotranslator-transformer-1.2.2.jar -srcjar D:/build/build/deploy/trmsEJB.jar -destjar D:/build/build/deploy1.4/trmsEJB1.4.jar    
  147. (注意如果需要验证,加-verify参数,就要把程序所需要的lib包引入,可以写成bat或sh脚本)。   
  148.   
  149. 6。客户端的程序签名并部署为webStart:   
  150.     lib包可以用FatJar打成一个jar包文件签名,这样轻松不少。webLogic.jar因为太大,单独打一个jar包,要不然容易内存溢出。   
  151.     注意在生成签名秘钥的时候加上过期的时间,要不然默认会在6个月内过期。keytool -genkey -alias keystore -Validity xxx