在正式的企业开发中,我们会对EJB应用进行不断地测试,这一过程需要我们进行反复的打包-发布。如果我们手动的通过MyEclipse的打包向导进行打包,然后手动在JBoss下进行部署发布这样会降低项目的开发效率。
为了提高EJB应用的开发效率,大部分企业中会在引入Ant工具,通过Ant完成EJB应用的编译-打包-发布-卸载。在MyEclipse中已经集成了Ant开发工具,所以在项目中我们可以直接使用Ant。
Ant的使用
首先,在项目的根目录之下创建Ant的配置文件,该配置文件是一个XML文件,默认的Ant配置文件的名称叫做build.xml。在编写该配置文件之前,我们首先要明白该配置文件是用来做什么的。build.xml文件的大致工作是:编译EJB应用-打包EJB应用-发布EJB应用-卸载EJB应用。其配置信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 描述一个工程,工程名为"HelloWorld",该工程位于与build.xml文件同一目录之中 -->
<project name="HelloWorld" basedir=".">
<!-- 创建一个属性,该属性的值是工程下的src目录 -->
<property name="src.dir" value="${basedir}\src" />
<!-- 创建一个属性,该属性指向系统环境变量 -->
<property environment="env" />
<!-- 创建一个属性,该属性用于执行系统环境变量下的JBOSS_HOME,
实际上是指向JBoss的安装路径 -->
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<!-- 创建一个属性,该属性定位到JBoss安装目录下的server/default目录 -->
<property name="jboss.server.config" value="default" />
<!-- 创建一个属性,该属性是在工程的根目下的build文件夹,用于存放编译好的EJB应用 -->
<property name="build.dir" value="${basedir}\build" />
<!-- 将JBoss安装目录client目录下的所有jar文件引用到build文件夹中 -->
<path id="build.classpath">
<fileset dir="${jboss.home}\client">
<include name="*.jar" />
</fileset>
<pathelement location="${build.dir}" />
</path>
<!-- 功能:创建、删除build文件夹 -->
<target name="prepare">
<delete dir="${build.dir}" />
<mkdir dir="${build.dir}" />
</target>
<!-- 功能:编译EJB应用,该模块依赖于prepare模块 -->
<target name="compile" depends="prepare" description="编译">
<!-- 将EJB工程的src中的java类,编译到build文件夹中 -->
<javac srcdir="${src.dir}" destdir="${build.dir}">
<classpath refid="build.classpath" />
</javac>
</target>
<!-- 功能:打包EJB应用,该模块依赖于compile模块 -->
<target name="ejbjar" depends="compile" description="打包EJB应用">
<!-- 打包后的文件名称 -->
<jar jarfile="${basedir}\${ant.project.name}.jar">
<fileset dir="${build.dir}">
<include name="**/*.class" />
</fileset>
</jar>
</target>
<!-- 功能:发布EJB应用,该模块依赖于ejbjar,发布应用实际上就是拷贝文件到服务器 -->
<target name="deploy" depends="ejbjar" description="发布EJB应用">
<copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy" />
</target>
<!-- 功能:卸载EJB应用 -->
<target name="undeploy" description="卸载EJB应用">
<delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar" />
</target>
</project>
然后,在MyEclipse的Outline视图选中deploy任务,执行"右击-run as - Ant Build"命令,此时就已经发布好了EJB应用。
经验技巧
怎样查看一个EJB应用是否发布成功?
第一,当EJB应用发布完成之后,启动JBoss服务器;
第二,打开浏览器,访问JBoss主页面,http://localhost:8080/;
第三,如果成功访问JBoss主页面,点击"JMX Console"链接。
在跳转到的页面中,点击"service=JNDIView"。
在跳转到的信息的页面中找到"java.lang.String list()",点击下面的"Invoke"按钮。
在新的页面中找到"Global JNDI Namespace",在它下面的文字中寻找你的EJB应用的类名,如果可以找到,说明发布成功,找不到,则发布失败。