EJB 打EAR包

apache-ant-1.6.5
jboss-4.2.1.GA
jboss-annotations-ejb3.jar
jboss-ejb3.jar
jboss-ejb3x.jar
最后三个包在jboss里有.

publicinterface HelloWorld {
public String sayHello(String name);
}

@Stateless
@Remote (
{HelloWorld.class})
publicclass HelloWorldBean implements HelloWorld {
public String sayHello(String name) {
//org.apache.commons.collections,这里假设用到了其它包中的类
CollectionUtils c=new CollectionUtils();
//org.apache.commons.lang
StringUtils s=new StringUtils();
return"hello,i am "+name;
}

}

<%
//org.apache.commons.collections,这里假设用到了其它包中的类
CollectionUtils c
=new CollectionUtils();
//org.apache.commons.lang
StringUtils s
=new StringUtils();
%>
<%
Properties props
=new Properties();
props.setProperty(
"java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty(
"java.naming.provider.url", "localhost:1099");
props.setProperty(
"java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx;
try {
ctx
=new InitialContext(props);
HelloWorld helloworld
= (HelloWorld) ctx.lookup("myproject/HelloWorldBean/remote");
out.println(helloworld.sayHello(
"mashiguang"));
} catch (NamingException e) {
out.println(e.getMessage());
}
%>
<project name="ear" default="deploy" basedir=".">

<property environment="env"/>
<property name="app.dir" value="${basedir}"/>
<property name="src.dir" value="${app.dir}\src"/>
<property name="classes.dir" value="${app.dir}\build\classes"/>
<property name="webcontent.dir" value="${app.dir}\WebContent"/>
<property name="jboss.home" value="${env.JBOSS_HOME}"/>
<property name="jboss.server.config" value="default"/>

<path id="build.classpath" description="编译时classpath">
<fileset dir="${webcontent.dir}\WEB-INF\lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${classes.dir}"/>
</path>

<target name="prepare" depends="clean" description="创建classes文件夹">
<mkdir dir="${classes.dir}"/>
</target>

<target name="compile" depends="prepare" description="编绎">
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on" deprecation="on" optimize="off" includes="**">
<classpath refid="build.classpath"/>
</javac>
</target>

<target name="sessionInterface" depends="compile" description="创建session bean接口包">
<jar destfile="${app.dir}/interface.jar">
<fileset dir="${classes.dir}">
<include name="com/mashiguang/ejb3/*.class"/>
</fileset>
</jar>
</target>

<target name="ejb_jar" depends="sessionInterface" description="创建ejb jar包">
<jar destfile="${app.dir}/ejb.jar">
<fileset dir="${classes.dir}">
<include name="com/mashiguang/ejb3/impl/**"/>
</fileset>
<manifest>
<attribute name="Class-Path" value="interface.jar commons-collections-3.2.jar commons-lang-2.3.jar"/>
</manifest>
</jar>
</target>

<target name="web-war" depends="ejb_jar" description="创建WEB发布包">
<war destfile="${app.dir}/web.war" webxml="${webcontent.dir}/WEB-INF/web.xml">
<fileset dir="${webcontent.dir}">
<include name="*.jsp"/>
<exclude name="WEB-INF/web.xml"/>
<exclude name="WEB-INF/lib/**"/>
</fileset>
<manifest>
<attribute name="Class-Path" value="interface.jar commons-collections-3.2.jar commons-lang-2.3.jar"/>
</manifest>
</war>
</target>

<target name="ear" depends="web-war" description="创建WEB发布包">
<ear destfile="${app.dir}/myproject.ear" appxml="${src.dir}/META-INF/application.xml">
<fileset dir="${app.dir}">
<include name="ejb.jar"/>
<include name="web.war"/>
<include name="interface.jar"/>
</fileset>
<fileset dir="${webcontent.dir}/WEB-INF/lib">
<include name="commons*.jar"/>
</fileset>
</ear>
</target>

<target name="deploy" depends="ear">
<copy file="${app.dir}/myproject.ear" todir="${jboss.home}/server/${jboss.server.config}/deploy"/>
</target>

<target name="clean">
<delete>
<fileset dir="${app.dir}">
<include name="ejb.jar"/>
<include name="web.war"/>
<include name="interface.jar"/>
</fileset>
</delete>
<delete dir="${classes.dir}"/>
<!---->
<delete file="${jboss.home}/server/${jboss.server.config}/deploy/myproject.ear"/>

</target>

</project>

猜你喜欢

转载自zgdkik.iteye.com/blog/1821479
EJB