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 閱讀(6640) 評論(1)  編輯  收藏 所屬分類: java web開發(fā)

          評論

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

          主站蜘蛛池模板: 咸宁市| 胶南市| 三原县| 海城市| 揭东县| 石首市| 靖远县| 新干县| 四会市| 西城区| 类乌齐县| 顺义区| 沐川县| 屏山县| 宁德市| 桃源县| 弥渡县| 辽中县| 九龙坡区| 杭锦旗| 松潘县| 西贡区| 郎溪县| 桃江县| 湘阴县| 宁明县| 道真| 伊金霍洛旗| 武清区| 南充市| 清苑县| 辛集市| 吴江市| 全椒县| 余姚市| 铜陵市| 英吉沙县| 如皋市| 鹤庆县| 泌阳县| 宁蒗|