`
jljlpch
  • 浏览: 323158 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

彻底解决Ant在Tomcat进行卸载部署undeploy时不能删除jar文件的问题

    博客分类:
  • Ext
阅读更多

彻底解决Ant在Tomcat进行卸载部署undeploy时不能删除jar文件的问题

首先有一种解决办法,就是在应用下的META-INF下新建context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" antiResourceLocking="true" antiJARLocking="true">
</Context>

这种方法在重复进行多次deploy、undeploy时的确解决了该问题。但是如果在deploy和undeploy之间执行如下的webtest任务,也就是在undeploy前访问该应用,那么Tomcat就会加载jar文件,再执行undeploy时还是不能删除jar文件,此时似乎Tomcat植入jar根深蒂固了!
<target name="webtest_login">
<echo message="WebTest测试"/>
<exec executable="cmd">
<arg line="/c webtest.bat -f tools/Java/webtest/login.xml -Dwebtest.home=${tools.webtest}"/>
<arg line="-Dwebtest.home=${tools.webtest}"/>
<arg line="-Dhost=${manager.ip}"/>
<arg line="-Dport=${manager.port}"/>
<arg line="-Dbasepath=${deploy.name}"/>
<arg line="-Dresultpath=${report.webtestReport.part}"/>
<arg line="-Dresultfile=${report.webtestReport.xml.part}"/>
</exec>
<xslt in="${report.webtestReport.xml}" out="${report.webtestReport.html}" style="${tools.webtest.reportstyle}" />
</target>

有一个办法可以彻底解决该问题,就是使用xml部署文件来部署应用,不适用war发布的方式:
<target name="deploy">
<echo message="安装Web应用"/>
<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="classpath.catalina"/>
<deploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="/${deploy.name}" config="D:\AutoBuilder\build\student\web\context.xml"/>
</target>

context.xml描述的项目目录位于Tomcat外的目录:
<Context path="/student" docBase="D:/AutoBuilder/build/student/web" debug="0"/>

这样应用程序是指向外界的,不位于Tomcat目录中,再执行undeploy时就没有这个问题了。而且使用war进行deploy时后台的错误也不会再出现了:
java.io.FileNotFoundException: webapps\student (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.apache.catalina.startup.ExpandWar.copyInternal(ExpandWar.java:226)

BTW,deploy时会在C:\Tomcat 5.5\conf\Catalina\localhost下拷贝生成context.xml,undeploy时会删除该文件。

分享到:
评论

相关推荐

    Ant远程部署tomcat脚本

    `url`、`username`和`password`则用于连接远程Tomcat的Manager应用进行部署操作。 接着,我们定义了几个主要的Ant目标: 1. `war`:打包Web应用成WAR文件。这个目标使用`&lt;war&gt;`任务来创建WAR文件,包含Web应用的...

    Tomcat控制台部署

    ### Tomcat控制台部署知识点详解 #### 一、配置JRE环境 在进行Tomcat部署前,首先需要确保Java运行环境(JRE)已正确配置。...以上就是关于如何使用Tomcat控制台进行部署和管理应用程序的详细步骤,希望对您有所帮助。

    maven 远程部署tomcat

    执行 `mvn tomcat:undeploy` 命令可以删除部署/撤销部署。 常见问题 如果在部署时出现 `Server returned HTTP response code: 403` 异常,可能是因为 Tomcat 7 引用的角色是 `manager-script` 而不是 `manager`...

    tomcat项目没部署webapps下,如何找

    标题中的“tomcat项目...总结来说,当Tomcat项目不在`webapps`下时,可以通过修改`server.xml`文件,使用命令行工具或利用Tomcat的管理功能来部署和管理应用。理解这些概念和操作对于管理和维护Tomcat服务器至关重要。

    ant-weblogic.jar.zip

    这个JAR文件允许开发者在Ant脚本中执行对WebLogic的各种操作,如启动、停止、部署、卸载应用等,极大地简化了WebLogic环境下的应用生命周期管理。 当我们解压这个zip文件,会发现两个主要的组成部分:ant-weblogic....

    tomcat7-maven-plugin-2.2.jar.zip

    标题中的"tomcat7-maven-plugin-2.2.jar.zip"是一个Maven插件的压缩文件,主要用于Java Web应用程序的部署和管理。Tomcat7是一个流行的开源应用服务器,它实现了Servlet和JSP规范,用于运行Java Web应用。而Maven是...

    ant-weblogic-1.6.2.jar.zip

    通过导入这个JAR文件,开发者可以在Ant构建脚本中调用特定的WebLogic任务,如`deploy`、`undeploy`、`start-server`和`stop-server`等,以自动化WebLogic应用程序的生命周期管理。 其次,`ant.license.txt`文件通常...

    ant-weblogic-1.6.3.jar.zip

    在压缩包中,"ant.license.txt"文件通常包含了Ant软件的许可协议信息,这关系到你使用Ant及其插件的合法性和版权问题。阅读并理解这个文件对于合规使用软件非常重要,尤其是对于企业级项目,必须确保遵循所有的许可...

    maven部署tomcat

    - `mvn tomcat7:undeploy`:卸载应用程序。 ##### 5. 检查部署结果 - **操作**:检查Tomcat的`webapps`目录,确认是否已经包含了部署的应用程序。 - **验证方法**: - 查看`webapps`目录下是否有相应的WAR包或...

    tomcat-8.0.33压缩包

    - `logs`目录中的日志文件对于识别和解决运行时问题至关重要,特别是`catalina.out`文件通常包含启动过程和运行时错误信息。 8. **自定义配置** - 开发者可以根据需求自定义Tomcat的行为,比如通过编写自己的...

    使用Maven Cargo 插件管理Tomcat6的部署

    在IT行业中,管理和部署Web应用程序是一项关键任务,而Maven Cargo插件则为开发者提供了一个强大的工具,使得在Tomcat6上部署应用变得更加便捷。Cargo是一个用于自动化服务器和容器管理的Java库,它允许开发者在多种...

    soap+tomcat的环境配置

    总结来说,SOAP+Tomcat环境配置涉及安装JDK、Tomcat,部署SOAP服务,配置必要的JAR包,编写服务端和客户端代码,以及在Tomcat管理界面部署SOAP服务。通过这个过程,你将能够创建一个基本的SOAP通信环境,为更复杂的...

    EJB集成Ant配置模板

    `prepare`删除并创建构建目录,`compile`编译源代码,`ejbjar`创建EJB的JAR包,`deploy`将JAR包发布到JBoss服务器,`undeploy`则卸载EJB。 4. **文件集(Filesets)**: `&lt;fileset&gt;`元素用于指定一组文件。例如,在`...

    tomcatmanager.jar

    例如在卸载部署在tomcat的项目时候调用tomcatmanager api时候的例子: java -jar D:\\Tomcat\\jenkins\\tomcatmanager.jar http://localhost:8806/manager/text/undeploy?path=/ROOT admin 123456 主要用于jenkins...

    tomcat manager配置

    例如,在更新部署 WAR 包时,可能误删了除 ROOT 外的其他文件,或者 webapps/WEB-INF/web.xml 被删除了。 解决方法是: - 确保 webapps 目录下包含完整的 Manager App 目录结构。 - 如果缺失,可以从另一个正常工作...

    Maven Tomcat插件源码

    3. `tomcat:undeploy`:这个目标可以用来从Tomcat服务器上卸载已部署的应用。 4. `tomcat:redeploy`:如果应用已经部署,此目标会先卸载再重新部署,适用于更新应用的场景。 5. `tomcat:start` 和 `tomcat:stop`:...

    [转]使用Ant管理配置Weblogic

    通过Ant,开发者可以编写特定的Ant任务来执行WebLogic的相关操作,如启动、停止服务器,部署、卸载应用,以及修改服务器配置。这通常通过调用WebLogic的WLST(WebLogic Scripting Tool)或WLS Deploy工具实现。 4....

    Tomcat7.0 tomcat最新版本

    3. **更好的性能**:Tomcat 7.0在性能方面进行了优化,包括更快的启动速度和更高的并发处理能力。通过改进线程池管理和内存管理,它能更好地应对高流量网站的需求。 4. **增强的安全性**:Tomcat 7.0加强了安全特性...

    maven cargo自动化部署tomcat7.pdf

    这是为了确保当使用Cargo插件远程访问Tomcat服务器时,可以进行部署、启动等操作。 5. Maven settings.xml的配置: 在Maven的全局配置文件settings.xml中增加对cargo插件的支持,确保在命令行中可以正确调用cargo...

    apache-tomcat-6.0.41-deployer.zip

    9. **故障排查与日志文件**: Tomcat的日志文件,如`catalina.out`和各个应用的`logs`目录,对于诊断部署问题至关重要。Deployer部署失败时,这些日志会提供错误信息。 10. **最佳实践**: 使用Deployer时,建议创建...

Global site tag (gtag.js) - Google Analytics