彻底解决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时会删除该文件。
分享到:
相关推荐
例如在卸载部署在tomcat的项目时候调用tomcatmanager api时候的例子: java -jar D:\\Tomcat\\jenkins\\tomcatmanager.jar http://localhost:8806/manager/text/undeploy?path=/ROOT admin 123456 主要用于jenkins...
告诉FileUpload组件处理时的编码为项目编码,在FileItem中,用getString(encoding),这项设置可以解决获取的表单字段为乱码的问题,所以在每个FileItem实例后面都执行一次getString(encoding),就告诉FileItem在取值...
简介- 关于Apache Tomcat的 简短,高层位概貌。...管理者- 在 Apache Tomcat 运行时,由管理员(manager)程序来部署, 取消部署(undeploy), 再部署 (redeploy)各类应用程序。 域和访问控制: 描述 怎样配置域(用户
彻底解决fckeditor(jsp版)上传中文图片乱码问题,我这里用的编码是utf-8的,这里用的fckeditor 是2.6的,fckeditor.java包是2.3的,经过我修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,重新生成...
特别注意一点:表格里面的X表示拥有权限,也就是说,manager的权限是最大的,什么都能操作(不推荐配置)。 Features by Role probeuser poweruser poweruserplus manager Context: list X X X X ...
若服务器为linux环境, 应用根目录必须有读写权限, 如部署在apache的htdocs下面, 则htdocs必须有读定权限 〖管理权限〗 对于php应用的部署和去部署,要求输入密钥,以验证用户管理权限。此验证操作很简单,开发...
装载机使用WebHooks进行命令链接命令行界面列出申请java -jar loadr.jar -l或者java -jar loadr.jar -s http://[admin-server]:[port] loadr.jar -l输出: ------------------no deployed applications部署方式java ...
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 ...
WS,都不能满足需求; 以 获取手机号信息的wsdl为例子 生成过程 先将tool\asix1.4\asix\WEB-INF拷贝到新建web项目的WEB-INF cd tool wsdl2java.bat 生成服务器端源码,以及deploy.wsdd,undeploy.wsdd 将源码拷贝到...
键入以下命令来构建和部署归档文件: mvn clean package wildfly:deploy 这会将target/hello.war部署到正在运行的服务器实例。 该应用程序将在以下URL上运行: 取消部署存档 确保已如上所述启动JBoss EAP服务器...
运行gulp undeploy卸载扩展 请注意,即使您执行了gulp watch ,您也需要在对源进行更改后重新启动 Illustrator。 如果要签署扩展程序,则需要安装并获得证书。 请注意,如果您希望使用./sign.sh脚本,您应该确保 ...
Wordpress-使用Terraform在AWS ECS(业务流程),Fargate(计算),EFS(存储)上部署 在AWS ECS,Fargate和EFS上运行的Wordpress。 红外线在Terraform中。 先决条件 AWS_PROFILE设置了有效凭证,并具有以下权限: ...
nodejs-wrapper-opsworks 在 AWS OpsWorks 上安装 Node 0.12.0 的 redguide/nodejs 包装器用法要将这些与 OpsWorks 结合使用,请执行以下操作: 将此食谱添加到您的食谱存储库在 Berksfile 中添加 redguide/nodejs ...
JBoss AS7部署/管理插件 要简化使用JBoss Forge与JBoss Application Server 7的交互: : 用法 安装后,服务器必须正在运行才能使用任何管理命令。 安装(需要一个活动的项目) $ forge install-plugin jboss-as-7...
音乐管理器 使用MusicManager管理专辑并分享您的喜好! 它支持以下项目。... 删除Lambda函数和API网关: zappa undeploy production (英文版) 通过MusicManager管理和分享您对音乐的兴趣! 我支持以下这些:
部署 需要 需要GOLANG ver> = v1.15 dev env。 具有管理员权限的用户登录到集群。 # Deploy the operator, RBAC roles and CRDs export USERNAME=yaacov make deploy IMG=quay.io/ $USERNAME /oc-gate-operator:v...
OpenShift Maven 插件在 openshift 配置文件中可用。 您可以使用以下命令部署此应用程序: mvn oc:deploy -Popenshift 完成测试后,您可以使用以下目标取消部署: mvn oc:undeploy -Popenshift
OpenShift Maven 插件在 openshift 配置文件中可用。 您可以使用以下命令部署此应用程序: mvn oc:deploy -Popenshift 完成测试后,您可以使用以下目标取消部署它: mvn oc:undeploy -Popenshift
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 xApp应用程序的灵活安全的方法。 通讯接口(R0的草稿) 北行(外部) RESTful API 南行(内部) Helm(Kubernetes的程序包经理) 用于XApp管理的REST服务 Action URL Method Deploy /...