`
jljlpch
  • 浏览: 319374 次
  • 性别: 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时会删除该文件。

分享到:
评论

相关推荐

    tomcatmanager.jar

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

    fckeditor for jsp 的jar包

    告诉FileUpload组件处理时的编码为项目编码,在FileItem中,用getString(encoding),这项设置可以解决获取的表单字段为乱码的问题,所以在每个FileItem实例后面都执行一次getString(encoding),就告诉FileItem在取值...

    tomcat 中文手册chm版

    简介- 关于Apache Tomcat的 简短,高层位概貌。...管理者- 在 Apache Tomcat 运行时,由管理员(manager)程序来部署, 取消部署(undeploy), 再部署 (redeploy)各类应用程序。 域和访问控制: 描述 怎样配置域(用户

    彻底解决fckeditor(jsp版)上传中文图片乱码问题

    彻底解决fckeditor(jsp版)上传中文图片乱码问题,我这里用的编码是utf-8的,这里用的fckeditor 是2.6的,fckeditor.java包是2.3的,经过我修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,重新生成...

    Tomcat监控工具Probe,支持tomcat6-7-8-9.zip

    特别注意一点:表格里面的X表示拥有权限,也就是说,manager的权限是最大的,什么都能操作(不推荐配置)。 Features by Role probeuser poweruser poweruserplus manager Context: list X X X X ...

    php部署和管理

    若服务器为linux环境, 应用根目录必须有读写权限, 如部署在apache的htdocs下面, 则htdocs必须有读定权限 〖管理权限〗 对于php应用的部署和去部署,要求输入密钥,以验证用户管理权限。此验证操作很简单,开发...

    loadr:Payara GlassFish部署自动化

    装载机使用WebHooks进行命令链接命令行界面列出申请java -jar loadr.jar -l或者java -jar loadr.jar -s http://[admin-server]:[port] loadr.jar -l输出: ------------------no deployed applications部署方式java ...

    tomcat antiResourceLocking antiJARLocking 的作用和用法

    If true, Tomcat will prevent any file locking. This will significantly impact startup time of applications, but allows full webapp hot deploy and undeploy on platforms or configurations where file ...

    wsdl2java源码-Axis1WebService:Axis1WebService例子,通过wsdl文件生成服务器端代码并部署

    WS,都不能满足需求; 以 获取手机号信息的wsdl为例子 生成过程 先将tool\asix1.4\asix\WEB-INF拷贝到新建web项目的WEB-INF cd tool wsdl2java.bat 生成服务器端源码,以及deploy.wsdd,undeploy.wsdd 将源码拷贝到...

    hello:在EAP上使用Java JAX-RS的微服务

    键入以下命令来构建和部署归档文件: mvn clean package wildfly:deploy 这会将target/hello.war部署到正在运行的服务器实例。 该应用程序将在以下URL上运行: 取消部署存档 确保已如上所述启动JBoss EAP服务器...

    cep-sample:Adobe Illustrator 的简单 CEP 扩展

    运行gulp undeploy卸载扩展 请注意,即使您执行了gulp watch ,您也需要在对源进行更改后重新启动 Illustrator。 如果要签署扩展程序,则需要安装并获得证书。 请注意,如果您希望使用./sign.sh脚本,您应该确保 ...

    wordpress_terraform_ecs_fargate_efs:在AWS ECS,Fargate和EFS上运行的Wordpress。 Terraform中的红外线代码

    Wordpress-使用Terraform在AWS ECS(业务流程),Fargate(计算),EFS(存储)上部署 在AWS ECS,Fargate和EFS上运行的Wordpress。 红外线在Terraform中。 先决条件 AWS_PROFILE设置了有效凭证,并具有以下权限: ...

    nodejs-wrapper-opsworks:在 AWS OpsWorks 上安装 Node 0.12.0 的 redguidenodejs 的包装器

    nodejs-wrapper-opsworks 在 AWS OpsWorks 上安装 Node 0.12.0 的 redguide/nodejs 包装器用法要将这些与 OpsWorks 结合使用,请执行以下操作: 将此食谱添加到您的食谱存储库在 Berksfile 中添加 redguide/nodejs ...

    as-forge-addon:!\已弃用的存储库,请参阅as-addon

    JBoss AS7部署/管理插件 要简化使用JBoss Forge与JBoss Application Server 7的交互: : 用法 安装后,服务器必须正在运行才能使用任何管理命令。 安装(需要一个活动的项目) $ forge install-plugin jboss-as-7...

    MusicManager:管理您的专辑并分享您对音乐的兴趣!

    音乐管理器 使用MusicManager管理专辑并分享您的喜好! 它支持以下项目。... 删除Lambda函数和API网关: zappa undeploy production (英文版) 通过MusicManager管理和分享您对音乐的兴趣! 我支持以下这些:

    oc-gate-operator:为oc-gate服务创建令牌

    部署 需要 需要GOLANG ver&gt; = v1.15 dev env。 具有管理员权限的用户登录到集群。 # Deploy the operator, RBAC roles and CRDs export USERNAME=yaacov make deploy IMG=quay.io/ $USERNAME /oc-gate-operator:v...

    vertx-configmap-example-redhat

    OpenShift Maven 插件在 openshift 配置文件中可用。 您可以使用以下命令部署此应用程序: mvn oc:deploy -Popenshift 完成测试后,您可以使用以下目标取消部署: mvn oc:undeploy -Popenshift

    vertx-http-example-redhat:HTTP Vert.x Booster 使用 Eclipse Vert.x 的 Redhat 版本

    OpenShift Maven 插件在 openshift 配置文件中可用。 您可以使用以下命令部署此应用程序: mvn oc:deploy -Popenshift 完成测试后,您可以使用以下目标取消部署它: mvn oc:undeploy -Popenshift

    tabula_rasa:在 AWS OpsWorks 中运行社区说明书,而不会与 opsworks-cookbooks 中的旧版本发生冲突

    0.2.5 版已经在 Chef 11.10、Ubuntu 12.04 和 14.04 以及 Amazon Linux 2014.03 上进行了测试。 版权所有 :copyright: 2014,Shlomo Swidler。 在 Apache 2.0 许可下获得许可。 问题? 用法AWS OpsWorks 有几个生命...

    ric-plt-appmgr:上游Gerrit回购的镜像

    提供用于部署和管理各种RIC xApp应用程序的灵活安全的方法。 通讯接口(R0的草稿) 北行(外部) RESTful API 南行(内部) Helm(Kubernetes的程序包经理) 用于XApp管理的REST服务 Action URL Method Deploy /...

Global site tag (gtag.js) - Google Analytics