2012-07-26 6 views
0

저는 스프링과 웹 서비스를 사용하고 있습니다. 그래서 나는Ant 빌드 중 배치 오류가 발생했습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="service" default="deploy"> 
    <property name="builddir" value="build" /> 
    <property name="srcdir" value="../src" /> 
    <property name="deploydir" value="deploy" /> 
    <property name="wardir" value="../WebContent"/> 
    <property name="libdir" value="${wardir}/WEB-INF/lib/" /> 


    <target name="cleanstart"> 
     <delete dir="${builddir}" failonerror="true" /> 
     <echo message="Creating build directories" /> 
     <mkdir dir="${builddir}" /> 
     <mkdir dir="${builddir}/service/WEB-INF/classes" /> 
     <mkdir dir="${deploydir}" /> 
    </target> 

    <target name="service.war"> 

     <path id="basepath"> 
      <!--<fileset dir="${libdir}"> 
       <include name="**/*.jar" /> 
      </fileset> 
      --> 
      <fileset dir="${wardir}/WEB-INF/lib"> 
       <include name="**/*.jar" /> 
      </fileset> 

     </path> 
     <javac srcdir="${srcdir}/" destdir="${builddir}/service/WEB-INF/classes"> 
      <classpath refid="basepath" /> 
     </javac> 

     <war warfile="${builddir}/service.war" webxml="${wardir}/WEB-INF/web.xml" update="update"> 
      <classes dir="${builddir}/service/WEB-INF/classes" /> 
      <fileset dir="${wardir}"> 
       <exclude name="**/*web.xml" /> 
      </fileset> 

     </war> 
    </target> 


    <target name="deploy" depends="cleanstart, service.war"> 
     <copy file="${builddir}/service.war" todir="${deploydir}"> 
     </copy> 
    </target> 

</project> 

로 web.xml에 정의 그리고 봄 beans.xml 환경을 정의하고, 아래의 코드를 사용하여 스프링을로드 한 :

: 나는 다음과 같이 예외를 가지고 개미 빌드하는 동안

ServletConfig servletConfig ; 
ServletContext servletContext = servletConfig.getServletContext(); 
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext); 

service.war: 
      [javac] /home/vshankar/service_spring/buildTools/build.xml:36: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 
      [javac] Compiling 20 source files to /home/vshankar/service_spring/buildTools/build/service/WEB-INF/classes 
      [javac] /home/vshankar/service_spring/src/com/f/a/services/servicename/Service.java:6: package javax.servlet does not exist 
      [javac] import javax.servlet.ServletConfig; 
      [javac]     ^
      [javac] /home/vshankar/service_spring/src/com/f/a/services/servicename/Service.java:7: package javax.servlet does not exist 
      [javac] import javax.servlet.ServletContext; 
      [javac]     ^
      [javac] /home/vshankar/service_spring/src/com/f/a/services/servicename/Service.java:49: cannot find symbol 
      [javac] symbol : class ServletConfig 
      [javac] location: class com.f.a.services.servicename.Service 
      [javac]  ServletConfig servletConfig ; 
      [javac] ^
      [javac] /home/vshankar/service_spring/src/com/f/a/services/servicename/Service.java:50: cannot find symbol 
      [javac] symbol : class ServletContext 
      [javac] location: class 
com.f.a.services.servicename.Service 
      [javac]  ServletContext servletContext = servletConfig.getServletContext(); 
      [javac] ^
      [javac] 4 errors 

아무도 도와 줄 수 있습니까?

답변

0

프로젝트를 빌드하는 동안 Servlet jar 파일을 클래스 경로에 넣어야합니다. (귀/war 파일에이 파일을 패키지하는 것이 바람직하지 않음을 유의하십시오)

+0

예. webapps에 war 파일 배포 중에 servlet-api.jar 파일을 포함하면 다른 예외가 있습니다. 2012 년 7 월 26 일 12:55:03 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextDestroyed 정보 : WSSERVLET13 : JAX-WS 컨텍스트 리스너가 삭제되었습니다. –

관련 문제