mashiguang

小马快跑

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  20 随笔 :: 0 文章 :: 60 评论 :: 0 Trackbacks
用一个简单的ejb3.0示例记录ant打ear包的过程

源码下载

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

1,建ejb3.0项目
session bean接口:HelloWorld
public interface HelloWorld {
    
public String sayHello(String name);
}


实现类:HelloWorldBean
@Stateless
@Remote (
{HelloWorld.class})
public class 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;
    }

}


调用session bean的jsp:
<%
//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());
        }
%>


2,ant示例


把一些公用的jar包都放到ear下,而不是分别在ejb jar包和war包里,减少jar包的冗余.
<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>



posted on 2007-11-24 00:44 mashiguang 阅读(6329) 评论(1)  编辑  收藏 所属分类: java web开发

评论

# re: ant打ear包的详细步骤 2011-04-19 16:43 两性知识,减肥方法,丰胸方法,祛雀斑方法
用着不是很顺手  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: