下面我们来教大家来使用ant来build这个工程。ant是由apache.org组织来提供给java开发人员使用的如unix平台下的make一样的工程编译工程。它能自动识别我们要进行javac的java文件,将这些文件进行javac,再按照我们的要求来将这些class文件打包成为相应的jar包,当然也包括war文件(war文件也是一个jar文件,只是后缀名不同而已,都可以使用jar工具进行打包和解包)。我们先来看看我们为helloejb这个工程所写的build.xml文件,这个文件内容如下:
<?xml version="1.0"?>
<!--
build file for `orion-primer', an sample j2ee application.
version: $revision: 3.1 $ $date: 2000/08/28 10:03:11 $
author: ernst de haan
-->
<project basedir="." default="j2ee-ear" name="orion-primer">
<target name="init">
<property name="name" value="helloejb"></property>
<property name="src.dir" value="src"></property>
<property name="lib.dir" value="lib"></property>
<property name="rel.dir" value="rel"></property>
<property name="orion.dir" value="c:/orion"></property>
<property name="build.compiler" value="classic"></property>
</target>
<target name="clean" depends="init">
<deltree dir=${lib.dir}>
<deltree dir=${rel.dir}>
</target>
<target name="prepare" depends="init">
<mkdir dir=${lib.dir}>
<mkdir dir=${lib.dir}/ejb>
<mkdir dir=${lib.dir}/ejb/meta-inf>
<mkdir dir=${lib.dir}/web>
<mkdir dir=${lib.dir}/web/web-inf>
<mkdir dir=${lib.dir}/web/web-inf/classes>
<mkdir dir=${lib.dir}/j2ee>
<mkdir dir=${lib.dir}/meta-inf>
<mkdir dir=${rel.dir}>
</target>
<target name="ejb-classes" depends="prepare">
<javac
includes="java/net/chinacode/**"
classpath="${orion.dir}/ejb.jar" >
</target>
<target name="ejb-meta-inf" depends="prepare">
<copyfile
</target>
<target name="ejb-jar" depends="ejb-classes,ejb-meta-inf">
<jar
</target>
<target name="web-classes" depends="prepare">
<javac
includes="java/net/chinacode/web/**"
classpath="${lib.dir}/ejb:${orion.dir}/ejb.jar:${orion.dir}/jndi.jar:${orion.dir}/orion.jar" />
</target>
<target name="web-web-inf" depends="prepare">
<copyfile
dest="${lib.dir}/web/web-inf/web.xml" >
</target>
<target name="web-war" depends="web-classes,web-web-inf">
<jar
</target>
<target name="j2ee-meta-inf" depends="prepare">
<copyfile
</target>
<target name="j2ee-ear" depends="ejb-jar,web-war,j2ee-meta-inf">
<copyfile
<copyfile
<jar
</target>
</project>
我们将这个xml文件存入hdsite/build.xml文件下。这个文件说明了我们去编译整个工程的文件的步骤,同时也可以看到相应的配置文件也就是哪些xml文件是按一个什么样的规则被打包到jar文件中去的。通过ant编绎后我们在hdsite/rel目录下会得到helloejb-ejb.jar文件和helloejb-web.war文件以及helloejb.ear文件。如果需要了解ant的build.xml文件更为详细的信息请到http://www.apache.org网站寻找相应的文档。做好后,我们只要在hdsite目录下运行ant就可以了,它会自动创建一系列的目录,我们只需要得到rel目录下的几个包文件。如果只需要在一个orion服务器上运行servlet加ejb,哪么我们只需要一个ear文件就可以了。如果需要分开运行,哪么web容器就是war文件,jar文件就是ejb容器。
下面我们来在orion/config目录下的server.xml文件中加入这一行:
<application name="helloejb" path="c:/hdsite/rel/helloejb.ear">
这样我们就说明了一个在server中运行的应用包或是目录。同时我们也需要在web server的设置中说明一个虚似路径到servlet上,将orion/config/中的default-web-site.xml文件中加入这样一行:
<web-app name="helloejb-web" root="/helloejb" application="helloejb">
这样我们就说明了在缺省的web服务器中加入一个/helloejb的虚似路径,并指向helloejb-web这个web容器。哪么大家会问,我们通过浏览器以什么样的路径会访问到这个servlet呢?因为一个servlet没有像html一样是一个文件存在于web服务器可以访问到的路径。很简单,我们可以看到在前面的web容器的配置说明文件web.xml中说明了一个servlet map将helloservlet指向到了/,哪么我们访问这个servlet的路径就是http://hostname/helloejb/就可以了,如果我们在web.xml中将/改成/helloservlet,哪么我们访问的路径就是http://hostname/helloejb/helloservlet了。
闽公网安备 35060202000074号