2011-09-26 81 views
0

我在eclipse(helios)中有一個簡單的動態web項目。在這裏我有一個需要uname和密碼的jsp,它會轉到一個只打印uname的servlet。我正在使用Ant構建戰爭並部署。在eclipse(helios)中爲動態web項目生成錯誤

我在下面設置做了路徑:

  1. ANT_HOME = C:\ Apache的螞蟻1.7.0
  2. JAVA_HOME = C:\ java的\ JDK1.6
  3. 類路徑=; %JAVA_HOME%\ lib;%ANT_HOME%\ lib
  4. path =%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文件,標準1.0.6.jar

現在,當我嘗試執行ant構建時,它給我編譯錯誤,錯誤如下: 軟件包javax.servlet.http不存在,軟件包javax.servlet.http不存在,軟件包javax.servlet。 http不存在等等

任何人都可以幫我解決這個問題嗎? 是類路徑的問題還是它無法找到該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> 

回答

1

螞蟻不知道web項目什麼。它不會自動將jar包放入類路徑中的WEB-INF/lib中。您必須明確地在javac任務所使用的類路徑中包含所有必需的jar來編譯您的類。

請注意,至少servlet-api.jar不應該在WEB-INF/lib中,因爲它明顯在tomcat的根類路徑中。

+0

我從WEB-INF/lib中刪除了servlet-api.jar,並檢查了它具有c:\ tomcat \ common \ lib文件的構建路徑。在此之後,我嘗試再次構建,但同樣的問題仍然存在。 – shiny

+0

螞蟻和日食是兩個完全不同的東西。如果使用ant構建,它不會奇蹟般地從Eclipse獲取構建路徑。正如我在我的回答中所寫的,您必須在您的ant構建文件的javac任務中定義一個顯式的類路徑。向我們展示你的ant構建文件。 –

+0

正如你所說,我在build.xml中的javac命令的類路徑中添加了jar,但仍然無效。 – shiny