- <project name="j2ee-tutorial-app" default="about" basedir=".">
- <target name="init">
  <tstamp /> 
  <property name="build" value="build" /> 
  <property name="dist" value="dist" /> 
  <property name="src" value="src" /> 
  <property name="sql" value="sql" /> 
  <property environment="myenv" /> 
  <property name="cpath" value=".:${myenv.J2EE_HOME}/lib/j2ee.jar:./src:jar/tx-ejb.jar:jar/account-ejb.jar:jar/customer-ejb.jar" /> 
  <property name="packager" value="com.sun.enterprise.tools.packager.Main" /> 
  <property name="pack-jvmargs" value="-Xmx128m" /> 
  <property name="pack-path" value=".:${myenv.J2EE_HOME}\lib\j2ee.jar:${myenv.J2EE_HOME}\lib\locale" /> 
  <property name="app-jars" value="jar/account-ejb.jar:jar/customer-ejb.jar:jar/tx-ejb.jar:jar/web-client.war:jar/app-client.jar" /> 
  <property name="util-files" value="com/sun/ebank/util" /> 
  <property name="ejb-exception-files" value="com/sun/ebank/ejb/exception" /> 
  <property name="account-ejb-files" value="com/sun/ebank/ejb/account:com/sun/ebank/ejb/customer/Customer.class:com/sun/ebank/ejb/customer/CustomerHome.class" /> 
  <property name="customer-ejb-files" value="com/sun/ebank/ejb/customer" /> 
  <property name="tx-ejb-files" value="com/sun/ebank/ejb/tx:com/sun/ebank/ejb/account/Account.class:com/sun/ebank/ejb/account/AccountHome.class" /> 
  <property name="ac-files" value="com/sun/ebank/appclient:AdminMessages.properties:AdminMessages_es.properties" /> 
  <property name="cloud-lib" value="${myenv.J2EE_HOME}/lib/cloudscape" /> 
  <property name="system-lib" value="${myenv.J2EE_HOME}/lib/system" /> 
  <property name="cloud-path" value=".:${cloud-lib}/cloudclient.jar:${cloud-lib}/RmiJdbc.jar:${system-lib}/cloudutil.jar:${system-lib}/cloudscape.jar" /> 
  <property name="cloud-jvmargs" value="-ms16m -mx32m -Dij.connection.CloudscapeDB=jdbc:rmi://localhost:1099/jdbc:cloudscape:CloudscapeDB;create=true -Dcloudscape.system.home=${myenv.J2EE_HOME}\cloudscape" /> 
  </target>
- <target name="prepare" depends="init">
  <mkdir dir="${build}" /> 
  </target>
  <target name="all" depends="package-ejb,package-web,setruntime-ac,assemble-app,setruntime-app" /> 
- <target name="compile-exception" depends="prepare">
  <javac srcdir="${src}" destdir="${build}" includes="**/exception/*" classpath="${cpath}" /> 
  </target>
- <target name="compile-detail" depends="prepare">
  <javac srcdir="${src}" destdir="${build}" includes="**/util/*Details.java" classpath="${cpath}" /> 
  </target>
- <target name="compile-interface" depends="compile-detail,compile-exception">
  <javac srcdir="${src}" destdir="${build}" includes="**/ejb/**/**" excludes="**/ejb/**/*Bean*,**/ejb/exception/***,**/ejb/test/**" classpath="${cpath}" /> 
  </target>
- <target name="compile-util" depends="compile-interface">
  <javac srcdir="${src}" destdir="${build}" includes="**/ebank/util/**" classpath="${cpath}" /> 
  </target>
- <target name="compile-ejb" depends="compile-util">
  <javac srcdir="${src}" destdir="${build}" includes="**/ebank/ejb/**/*Bean*" classpath="${cpath}" /> 
  </target>
- <target name="package-account" depends="compile-ejb">
  <delete file="jar/account-ejb.jar" /> 
- <java classname="${packager}" fork="yes">
  <jvmarg line="${pack-jvmargs}" /> 
  <arg line="-ejbJar ${build} ${account-ejb-files}:${ejb-exception-files}:${util-files} dd/account-ejb.xml jar/account-ejb.jar" /> 
  <classpath path="${pack-path}" /> 
  </java>
  </target>
- <target name="package-customer" depends="compile-ejb">
  <delete file="jar/customer-ejb.jar" /> 
- <java classname="${packager}" fork="yes">
  <jvmarg line="${pack-jvmargs}" /> 
  <arg line="-ejbJar ${build} ${customer-ejb-files}:${ejb-exception-files}:${util-files} dd/customer-ejb.xml jar/customer-ejb.jar" /> 
  <classpath path="${pack-path}" /> 
  </java>
  </target>
- <target name="package-tx" depends="compile-ejb">
  <delete file="jar/tx-ejb.jar" /> 
- <java classname="${packager}" fork="yes">
  <jvmarg line="${pack-jvmargs}" /> 
  <arg line="-ejbJar ${build} ${tx-ejb-files}:${ejb-exception-files}:${util-files} dd/tx-ejb.xml jar/tx-ejb.jar" /> 
  <classpath path="${pack-path}" /> 
  </java>
  </target>
  <target name="package-ejb" depends="package-account,package-customer,package-tx" /> 
- <target name="compile-web" depends="prepare">
  <javac srcdir="${src}" destdir="${build}" includes="com/**/web/**" classpath="${cpath}" /> 
  </target>
- <target name="package-web" depends="compile-web">
  <delete file="jar/web-client.war" /> 
- <war warfile="jar/web-client.war" webxml="dd/web.xml">
- <fileset dir="${src}/web">
  <include name="*.jsp" /> 
  <include name="images/*.gif" /> 
  </fileset>
- <webinf dir="${src}/web">
  <include name="*.tld" /> 
  <exclude name="*.jsp" /> 
  <exclude name="*.txt" /> 
  <exclude name="images/**" /> 
  </webinf>
- <webinf dir="jar">
  <include name="*.tld" /> 
  </webinf>
- <lib dir="jar">
  <include name="struts.jar" /> 
  </lib>
- <classes dir="${build}">
  <include name="**/*.class" /> 
  <exclude name="com/sun/ebank/appclient/**" /> 
  <exclude name="com/sun/ebank/ejb/**" /> 
  <exclude name="com/sun/ebank/util/**" /> 
  </classes>
- <classes dir="${src}/web">
  <include name="*.properties" /> 
  </classes>
  </war>
  </target>
- <target name="compile-ac" depends="compile-util">
  <javac srcdir="${src}" destdir="${build}" includes="**/appclient/**" classpath="${cpath}" /> 
  </target>
- <target name="package-ac" depends="compile-ac">
- <copy todir="${build}">
- <fileset dir="${src}">
  <include name="**/appclient/*.properties" /> 
  </fileset>
  <mapper type="flatten" /> 
  </copy>
  <delete file="jar/app-client.jar" /> 

解决方案 »

  1.   

    - <java classname="${packager}" fork="yes">
      <jvmarg line="${pack-jvmargs}" /> 
      <arg line="-applicationClient ${build} ${ac-files} com.sun.ebank.appclient.BankAdmin dd/app-client.xml jar/app-client.jar" /> 
      <classpath path="${pack-path}" /> 
      </java>
      </target>
    - <target name="setruntime-ac" depends="package-ac">
    - <java classname="${packager}" fork="yes">
      <jvmarg line="${pack-jvmargs}" /> 
      <arg line="-setRuntime jar/app-client.jar dd/runtime-ac.xml" /> 
      <classpath path="${pack-path}" /> 
      </java>
      </target>
    - <target name="assemble-app" depends="init">
      <delete file="jar/DukesBankApp.ear" /> 
    - <java classname="${packager}" fork="yes">
      <jvmarg line="${pack-jvmargs}" /> 
      <arg line="-enterpriseArchive ${app-jars} DukesBankApp jar/DukesBankApp.ear" /> 
      <classpath path="${pack-path}" /> 
      </java>
      </target>
    - <target name="setruntime-app" depends="init">
    - <java classname="${packager}" fork="yes">
      <jvmarg line="${pack-jvmargs}" /> 
      <arg line="-setRuntime jar/DukesBankApp.ear dd/runtime-app.xml" /> 
      <classpath path="${pack-path}" /> 
      </java>
      </target>
    - <target name="db-create-table" depends="init">
    - <java classname="COM.cloudscape.tools.ij" fork="yes">
      <jvmarg line="${cloud-jvmargs}" /> 
      <arg value="${sql}/create-table.sql" /> 
      <classpath path="${cloud-path}" /> 
      </java>
      </target>
    - <target name="db-insert" depends="init">
    - <java classname="COM.cloudscape.tools.ij" fork="yes">
      <jvmarg line="${cloud-jvmargs}" /> 
      <arg value="${sql}/insert.sql" /> 
      <classpath path="${cloud-path}" /> 
      </java>
      </target>
    - <target name="db-list" depends="init">
    - <java classname="COM.cloudscape.tools.ij" fork="yes">
      <jvmarg line="${cloud-jvmargs}" /> 
      <arg value="${sql}/listAccount.sql" /> 
      <classpath path="${cloud-path}" /> 
      </java>
      </target>
    - <target name="db-delete" depends="init">
    - <java classname="COM.cloudscape.tools.ij" fork="yes">
      <jvmarg line="${cloud-jvmargs}" /> 
      <arg value="${sql}/delete.sql" /> 
      <classpath path="${cloud-path}" /> 
      </java>
      </target>
    - <target name="db-reset-key" depends="init">
    - <java classname="COM.cloudscape.tools.ij" fork="yes">
      <jvmarg line="${cloud-jvmargs}" /> 
      <arg value="${sql}/reset-key.sql" /> 
      <classpath path="${cloud-path}" /> 
      </java>
      </target>
    - <target name="about">
      <echo message="Main targets for the Duke's Bank application:" /> 
      <echo message="" /> 
      <echo message="EJB" /> 
      <echo message="compile-ejb" /> 
      <echo message="package-ejb" /> 
      <echo message="" /> 
      <echo message="Web" /> 
      <echo message="compile-web" /> 
      <echo message="package-web" /> 
      <echo message="" /> 
      <echo message="App Client" /> 
      <echo message="compile-ac" /> 
      <echo message="package-ac" /> 
      <echo message="setruntime-ac" /> 
      <echo message="" /> 
      <echo message="J2EE Application" /> 
      <echo message="assemble-app" /> 
      <echo message="setruntime-app" /> 
      <echo message="" /> 
      <echo message="Database" /> 
      <echo message="db-create-table" /> 
      <echo message="db-insert" /> 
      </target>
    - <target name="clean" depends="init">
      <delete dir="${build}" /> 
      </target>
      </project>
      

  2.   

    我说几点:
    1.你设置一个property指定J2EE_HOME的目录
    <property name="myenv.J2EE_HOME" value="目录" /> 
    2.你把cpath改成代码试试
    <path id="cpath">
    <pathelement location="${myenv.J2EE_HOME}/lib/j2ee.jar"/>
    <pathelement location="src"/>
    <fileset dir="jar">
                 <include name="**/*.jar"/>
             </fileset>
    </path>
    3.你按照顺序每个target都执行一下,看问题出现在哪里。
    4.你的build.xml文件的有些乱,可读性不好,需要好好refactor一下。
      

  3.   

    我说几点:
    1.你设置一个property指定J2EE_HOME的目录
    <property name="myenv.J2EE_HOME" value="目录" /> 
    2.你把cpath改成代码试试
    <path id="cpath">
    <pathelement location="${myenv.J2EE_HOME}/lib/j2ee.jar"/>
    <pathelement location="src"/>
    <fileset dir="jar">
                 <include name="**/*.jar"/>
             </fileset>
    </path>
    3.你按照顺序每个target都执行一下,看问题出现在哪里。
    4.你的build.xml文件的有些乱,可读性不好,需要好好refactor一下。