在eclipse(helios)中为动态Web项目构建错误

时间:2011-09-26 11:06:45

标签: eclipse jar classpath eclipse-3.6 helios

我在eclipse(helios)中有一个简单的动态web项目。在这里我有一个jsp,它要求uname和密码,然后它转到一个只打印uname的servlet。我正在使用Ant来构建战争并部署。

我已完成以下路径设置:

  1. ANT_HOME = C:\ apache-ant-1.7.0
  2. JAVA_HOME = C:\ java \ jdk1.6
  3. classpath =。;%JAVA_HOME%\ lib;%ANT_HOME%\ lib
  4. path =%SystemRoot%\ system32;%SystemRoot%;%SystemRoot%\ System32 \ Wbem;%JAVA_HOME%\ bin;%Path%;%ANT_HOME%\ bin
  5. tomcat安装在c:\ tomcat

    我在WEB-INF \ lib

    中有以下文件

    jstl-1.1.2.jar,jstl.jar,servlet-api.jar,standard-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 个答案:

答案 0 :(得分:1)

Ant对Web项目一无所知。它不会自动在类路径中包含WEB-INF / lib中的jar。您必须明确地在javac任务使用的类路径中包含所有必需的jar来编译您的类。

请注意,至少servlet-api.jar不应该在WEB-INF / lib中,因为它显然位于tomcat的根类路径中。