Apache Tomcat / 6.0.24上的部署错误

时间:2011-11-17 00:50:48

标签: java spring tomcat war

我正在尝试在提到的tomcat应用程序服务器上部署WAR。但是,以下是我尝试使用tomcat manager / ant脚本进行部署时出现的错误。

java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException:  Error initializaing :  java.lang.IllegalArgumentException: The archive [jar:file:/var/lib/tomcat6/webapps/afgretail.war!/] is malformed and will be ignored: an entry contains an illegal path [/]

WAR包含spring bean,HTML页面,js,images,css等。我们正在通过将解压缩的项目直接应用到tomcat服务器上的webapps文件夹来部署项目,该文件工作正常。但是,我们希望使用开发的ant脚本部署war文件到远程tomcat。

开发是在Windows平台上完成的,但tomcat服务器驻留在Linux(Oracle Enterprise Linux)

按如下方式进行部署的代码段:

<!-- Configure the folder and context path for this application -->
<property name="webapp" value="walton" />
<property name="path" value="/walton" />

<!-- Configure properties to access the Manager application -->
<property name="url" value="http://localhost:8080/manager/html" />
<!-- <property name="url" value="http://osm4.afgonline.com.au:8080/manager/html" />-->
<property name="username" value="tomcat" />
<property name="password" value="s3cret" />

<property name="dist.dir" value="dist" />

<property name="webapp.path" value="${dist.dir}/${webapp}" />

<property name="project.path" value="C:/java/workspace/afghl_walton"/>

<path id="deployer.classpath">
    <!--fileset dir="${basedir}/lib"-->
    <fileset dir="C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\">
        <include name="*.jar" />
    </fileset>
</path>

<!-- Configure the custom Ant tasks for the Manager application -->
<taskdef resource="org/apache/catalina/ant/catalina.tasks"
    classpathref="deployer.classpath" />

<target name="deploy" description="Deploy web application">
    <deploy url="${url}" username="${username}" password="${password}"
        path="${path}" war="${project.path}/${webapp.path}.war" update="true" />
</target>

任何帮助都将得到解决。如果需要更多信息,请告诉我。

谢谢,

库什

2 个答案:

答案 0 :(得分:1)

我遇到了与Tomcat 5.5.34相同的问题。我使用Ant构建WAR,WAR目标包含以下任务:

前缀导致war包中名为“/”的jar条目,并且因为Tomcat 5.5.26该条目在Tomcat容器启动期间导致异常。

将war命令的前缀属性值更改为 删除了我所有的问题。

祝你好运, 克里斯

答案 1 :(得分:0)

请避免同时使用out和getOutputStream!