mashiguang

          小馬快跑

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            20 隨筆 :: 0 文章 :: 60 評論 :: 0 Trackbacks
          用一個簡單的ejb3.0示例記錄ant打ear包的過程

          源碼下載

          環(huán)境:
          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);
          }


          實現(xiàn)類:HelloWorldBean
          @Stateless
          @Remote (
          {HelloWorld.class})
          public class HelloWorldBean implements HelloWorld {
              
          public String sayHello(String name) {
                  
          //org.apache.commons.collections,這里假設(shè)用到了其它包中的類
                  CollectionUtils c=new CollectionUtils();
                  
          //org.apache.commons.lang
                  StringUtils s=new StringUtils(); 
                  
          return "hello,i am "+name;
              }

          }


          調(diào)用session bean的jsp:
          <%
          //org.apache.commons.collections,這里假設(shè)用到了其它包中的類
          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="創(chuàng)建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="創(chuàng)建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="創(chuàng)建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="創(chuàng)建WEB發(fā)布包">
                  
          <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="創(chuàng)建WEB發(fā)布包">
                  
          <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 閱讀(6639) 評論(1)  編輯  收藏 所屬分類: java web開發(fā)

          評論

          # re: ant打ear包的詳細(xì)步驟 2011-04-19 16:43 兩性知識,減肥方法,豐胸方法,祛雀斑方法
          用著不是很順手  回復(fù)  更多評論
            

          主站蜘蛛池模板: 柳州市| 留坝县| 苏尼特左旗| 碌曲县| 大竹县| 宜章县| 定日县| 巴塘县| 武宁县| 铅山县| 文昌市| 牡丹江市| 七台河市| 彰化县| 祁连县| 东至县| 囊谦县| 会泽县| 襄汾县| 东兰县| 元氏县| 蓬莱市| 麻栗坡县| 漠河县| 洛川县| 承德县| 中山市| 乐都县| 边坝县| 陇南市| 雅江县| 琼结县| 苍梧县| 梧州市| 大竹县| 抚远县| 栾城县| 澄江县| 商丘市| 霍州市| 安宁市|