Ant构建期间的部署错误
问题描述:
我正在使用spring和webservice。所以我定义的web.xml为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>
而对于春季定义的beans.xml,并使用下面的代码加载的春天:
ServletConfig servletConfig ;
ServletContext servletContext = servletConfig.getServletContext();
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
在Ant构建我有如下例外:
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
任何人都可以帮助我吗?
答
您需要在构建项目时将servlet jar文件放到类路径中。 (请注意,不鼓励将这个文件打包到你的ear/war文件中)
是的,如果我包含servlet-api.jar文件,那么在将war文件部署到webapps的过程中,我得到另一个异常是2012年7月26日12:55:03 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextDestroyed INFO:WSSERVLET13:JAX-WS上下文侦听器被销毁 – 2012-07-26 07:28:16