我在eclipse(helios)中有一个简单的动态web项目。在这里我有一个jsp,它要求uname和密码,然后它转到一个只打印uname的servlet。我正在使用Ant来构建战争并部署。
我已完成以下路径设置:
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>
答案 0 :(得分:1)
Ant对Web项目一无所知。它不会自动在类路径中包含WEB-INF / lib中的jar。您必须明确地在javac
任务使用的类路径中包含所有必需的jar来编译您的类。
请注意,至少servlet-api.jar不应该在WEB-INF / lib中,因为它显然位于tomcat的根类路径中。