- 1.在业务层接口上增加ejb描述符
- 如下:
- /**
- * @ejb:bean
- * ejb-name="CardBo"
- * type="Stateless"
- * service-package="oss.rms.inventory.instance.node.business"
- * business-interface="ICardBo"
- * helper-beans-id="cardBo"
- *
- * @weblogic:pool
- * initial-beans-in-free-pool="5"
- * max-beans-in-free-pool="1000"
- */
- 其中:
- ejb-name是ejb的名字,有接口类的名字去掉“I”构成。
- type="Stateless"是建立无状态会话Bean。
- business-interface是业务接口的类名。
- helper-beans-id是接口在spring中注入的bean名。
- 2。用xdoclet生成ejb类:
- ant脚本中
- <target name="ejbdoclet" depends="clean-ejb,init">
- <pojoejbdoclet
- destdir="${gen-src.dir}"
- mergedir="{merge.dir}"
- excludedtags="@version,@author,@todo,@file_name,@date,@reviewed_by,@description,@see"
- addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}"
- ejbspec="2.0"
- force="${xdoclet.force}"
- verbose="false"
- >
- <fileset dir="${src.home}">
- <include name="**/business/*.java"/>
- </fileset>
- <!--packageSubstitution packages="business.impl" substituteWith="service.ejb" /-->
- <pojoremoteinterface/>
- <pojohomeinterface/>
- <pojosession/>
- <pojodeploymentdescriptor
- destdir="${meta-inf.dir}"
- validatexml="true"
- mergedir="${merge.dir}"
- description=""
- >
- </pojodeploymentdescriptor>
- <pojoejbbeans
- destdir="${ejbclient.dir}"
- mergedir="${merge.dir}"
- validatexml="true"
- >
- </pojoejbbeans>
- <weblogic
- version="7.0"
- xmlencoding="UTF-8"
- destdir="${meta-inf.dir}"
- validatexml="false"
- datasource="java:/trmsDataSource"
- mergedir="${merge.dir}"
- persistence="weblogic"
- />
- </pojoejbdoclet>
- </target>
- 3。编译文件:
- ant脚本如下:
- <target name="compile" depends="ejbdoclet">
- <javac fork="yes" memoryinitialsize="128M" memorymaximumsize="512M"
- destdir="${classes.home}" debug="yes" includes="**/*.java" executable="javac" compiler="javac1.5">
- <compilerarg line="-g:none -nowarn -J-Duser.language=en"/>
- <src path="${src.home}"/>
- <src path="${gen-src.dir}"/>
- <classpath refid="all-libs"/>
- </javac>
- <copy todir="${classes.home}" >
- <fileset dir="${src.home}" includes="**/*.xml"/>
- <fileset dir="${src.home}" includes="**/*.properties"/>
- <fileset dir="${src.home}" includes="**/*.jpg"/>
- <fileset dir="${src.home}" includes="**/*.png"/>
- <fileset dir="${src.home}" includes="**/*.gif"/>
- <fileset dir="${conf.home}" includes="**/*.xml"/>
- <fileset dir="${conf.home}" includes="**/*.properties"/>
- <fileset dir="${gen-src.dir}" includes="**/*.xml"/>
- <fileset dir="${gen-src.dir}" includes="**/*.properties"/>
- </copy>
- </target>
- 4。打包ejb的服务端和客户端:
- <!--服务端-->
- <target name="buildServer" depends="compile">
- <!-- build ejb jar -->
- <copy todir="${target.ejb}" includeEmptyDirs="false" preservelastmodified="yes">
- <fileset dir="${classes.home}">
- <include name="log4j.properties"/>
- <include name="META-INF/*.xml"/>
- <include name="/**/*"/>
- </fileset>
- </copy>
- <!--打ejb服务端的包-->
- <jar destfile="${deploy.home}/${ejb.file}" basedir="${target.ejb}" >
- <manifest>
- <attribute name="Class-Path" value="./"/>
- </manifest>
- </jar>
- </target>
- <!--客户端-->
- <target name="buildClient" depends="buildServer">
- <copy todir="${target.ejb}" includeEmptyDirs="false" preservelastmodified="yes">
- <fileset dir="${classes.home}">
- <!--为了生成stub文件,把客户端加上ejb描述文件-->
- <include name="META-INF/*.xml"/>
- <include name="/**/*"/>
- </fileset>
- </copy>
- <jar destfile="${deploy.home}/${ejbclient.file}" basedir="${target.ejb}" update="true">
- <manifest>
- <attribute name="Class-Path" value="./"/>
- </manifest>
- </jar>
- </target>
- 4。生成客户端的stub文件:
- <target name="appc" >
- <echo message="compiling using appc..."/>
- <java classname="weblogic.appc" fork="yes" >
- <arg line=" -keepgenerated -lineNumbers -g -verbose ${deploy.home}/trmsEJBClient.jar " />
- <!--all-libs-->
- <classpath refid="all-libs"/>
- <jvmarg value="-Xmx512M"/>
- </java>
- </target>
- //注意这里java命令和javac命令开堆栈的方式不一样。
- 5。把服务端部署到weblogic上,如果是jdk1.5的程序往jdk1.4上部署,需要把代码编译成jdk1.4版本。可以使用Retrotranslator-1.2.2-bin。
- 执行命令: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
- (注意如果需要验证,加-verify参数,就要把程序所需要的lib包引入,可以写成bat或sh脚本)。
- 6。客户端的程序签名并部署为webStart:
- lib包可以用FatJar打成一个jar包文件签名,这样轻松不少。webLogic.jar因为太大,单独打一个jar包,要不然容易内存溢出。
- 注意在生成签名秘钥的时候加上过期的时间,要不然默认会在6个月内过期。keytool -genkey -alias keystore -Validity xxx
打包
最新推荐文章于 2021-03-02 03:23:10 发布