0

私は日食(ヘリオス)に単純な動的Webプロジェクトを持っています。これには、una​​me とパスワードを要求する jsp が 1 つあり、それが uname を出力するサーブレットに送られます。私は Ant を使用して戦争を構築し、展開しています。

以下のパスの設定を行いました。

  1. ANT_HOME = C:\apache-ant-1.7.0
  2. JAVA_HOME = C:\java\jdk1.6
  3. クラスパス = .;%JAVA_HOME%\lib;%ANT_HOME%\lib
  4. パス = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%JAVA_HOME%\bin;%Path%;%ANT_HOME%\bin

tomcat は c:\tomcat にインストールされます

WEB-INF\lib に次のファイルがあります

jstl-1.1.2.jar、jstl.jar、servlet-api.jar、standard-1.0.6.jar

ここで、ant ビルドを実行しようとすると、コンパイル エラーが発生します。エラーは次のとおりです。存在するなど

誰でも問題を解決できますか? クラスパスに問題がありますか、それとも jar を見つけることができませんか?

ありがとう

ビルドファイル

<property name="build.dir" value="build" />
<property name="src.dir" value="src" />
<property name="dist.dir" value="c:\tomcat\webapps" />
<property name="jardir.dir" value="C:\tomcat\common\lib" />

<target name="clean" description="Removes temporary directories">
    <delete dir="${build.dir}" />
    <delete dir="bin" failonerror="false" />
    <delete dir="${dist.dir}/jar" failonerror="false" />
    <delete dir="${dist.dir}/FirstTestApp" failonerror="false"/>
</target>

<target name="init" description="Creates temporary directories">
    <mkdir dir="${build.dir}/classes" />
    <mkdir dir="${dist.dir}" />
</target>   

<target name="compile" depends="init"  description="compiles files">
    <javac debug="true" deprecation="true"
    destdir="${build.dir}/classes" srcdir="${src.dir}"
    verbose="true" classpath="${jardir.dir}" />
</target>   

<target name="war" depends="compile">
    <war destfile="${dist.dir}\FirstTestApp.war" basedir="${build.dir}" webxml="web\WEB-INF\web.xml">

        <lib dir="web/WEB-INF/lib" includes ="**/*.jar"/>                   

        <!--<fileset dir="web/jsp" includes="*.jsp" />-->

        <fileset dir="web" includes="js/**,images/**,css/**,jsp/**" />
    </war>
</target>

4

1 に答える 1

1

Ant は Web プロジェクトについて何も知りません。WEB-INF/lib の jar がクラスパスに自動的に含まれることはありません。javacタスクがクラスをコンパイルするために使用するクラスパスに、必要なすべての jar を明示的に含める必要があります。

少なくとも servlet-api.jar は、明らかに tomcat のルート クラスパスにあるため、WEB-INF/lib にあるべきではないことに注意してください。

于 2011-09-26T11:25:36.830 に答える