我正在尝试在提到的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>
任何帮助都将得到解决。如果需要更多信息,请告诉我。
谢谢,
库什
答案 0 :(得分:1)
我遇到了与Tomcat 5.5.34相同的问题。我使用Ant构建WAR,WAR目标包含以下任务:
前缀导致war包中名为“/”的jar条目,并且因为Tomcat 5.5.26该条目在Tomcat容器启动期间导致异常。
将war命令的前缀属性值更改为 删除了我所有的问题。
祝你好运, 克里斯
答案 1 :(得分:0)
请避免同时使用out和getOutputStream!