2011-09-26 10 views
0

Eclipse (helios)에서 간단한 동적 웹 프로젝트가 있습니다. 이것에서 나는 uname과 password를 요구하는 하나의 JSP를 가지고 있으며 그것은 단지 uname을 출력 할 서블릿으로 간다. 나는 Ant를 사용하여 전쟁을 구축하고 전개하고 있습니다.동적 웹 프로젝트를위한 eclipse (helios) 빌드 오류

내가 경로에 대한 설정 아래 행한 :

  1. ANT_HOME = C : \ 아파치 개미 - 1.7.0
  2. JAVA_HOME = C :. 자바 \의 JDK1.6 \
  3. 클래스 경로 =; % JAX_HOME % \ lib; % ANT_HOME % \ lib
  4. 경로 = % SystemRoot % \ system32; % SystemRoot %; % SystemRoot % \ System32 \ Wbem; % JAVA_HOME % \ bin; % 경로 %; % ANT_HOME % \ bin

tomcat이 설치되어 있습니다. C에서 : \ 바람둥이

나는

JSTL-1.1.2.jar, jstl.jar, 서블릿 - api.jar을 표준-1.0.6.jar lib에는 WEB-INF \에있는 파일을 다음 한

이제 ant 빌드를 수행하려고 할 때 컴파일 오류가 발생합니다. 오류는 다음과 같습니다. package javax.servlet.http가 존재하지 않습니다. 패키지 javax.servlet.http가 존재하지 않습니다. 패키지 javax.servlet. http가 존재하지 않습니다.

누구든지 문제를 해결할 수 있습니까? 클래스 경로에 문제가 있거나 항아리를 찾을 수 없습니까?

감사

빌드 파일

<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

개미가 웹 프로젝트에 대해 아무것도 알지 못한다. classpath의 WEB-INF/lib에 jar 파일이 자동으로 포함되지 않습니다. 클래스를 컴파일하려면 javac 작업에서 사용하는 클래스 경로에 필요한 모든 병을 명시 적으로 포함해야합니다.

최소한 servlet-api.jar은 분명히 tomcat의 루트 클래스 경로에 있으므로 WEB-INF/lib에 없어야합니다.

+0

WEB-INF/lib에서 servlet-api.jar을 제거하고 c : \ tomcat \ common \ lib 파일이있는 빌드 경로를 확인했습니다. 이 후 다시 빌드를 시도했지만 동일한 문제가 지속됩니다. – shiny

+0

개미와 일식은 크게 다른 두 가지입니다. 개미로 빌드하면 마술처럼 Eclipse에서 빌드 경로를 얻지 않습니다. 내 대답에 쓴 것처럼, 당신은 ant 빌드 파일의 javac 작업에 명시적인 클래스 경로를 정의해야합니다. 개미 빌드 파일을 보여주세요. –

+0

당신이 build.xml에서 javac 명령에 대한 classpath에 항아리를 추가했지만 여전히 작동하지 않는다고 말했던 것처럼. – shiny