在Tomcat 8.5中,Eclipse中有一个标准(undeploy => deploy)Ant脚本,它工作正常:在Tomcat 8.5上重新部署Ant失败 - java.net.HttpRetryException:由于服务器身份验证而无法重新尝试,在流模式下
<target name="undeploy" description="undeploy from Tomcat">
<undeploy
failonerror="no"
url="${tomcat-manager-url}"
username="${tomcat-manager-username}"
password="${tomcat-manager-password}"
path="/${project-name}"
/>
</target>
和
<target name="deploy" description="deploy to tomcat">
<echo>deploying from client</echo>
<deploy
url="${tomcat-manager-url}"
username="${tomcat-manager-username}"
password="${tomcat-manager-password}"
path="/${project-name}"
war="file:${build-directory}/${war-file-name}"
/>
</target>
能正常工作,部署成功:
undeploy:
[undeploy] OK - Undeployed application at context path /project_name
deploy:
[echo] deploying from client
[deploy] OK - Deployed application at context path /project_name
build-and-undeploy-deploy:
BUILD SUCCESSFUL
但我们不希望在部署应用程序之前使用独立的undeploy命令(因为$ CATALINA_BASE/conf/[enginename]/[hostname] /project_name.xml然后被删除),我们很喜欢重新部署应用程序,通过参数update =“true”like in this documentation。
此脚本在以前的版本中正常工作Eclipse在Tomcat 7上,但现在不在Tomcat 8.5上。我们得到一个奇怪的“认证”错误:java.net.HttpRetryException:不能重试由于服务器认证,在流模式:
<target name="deploy" description="deploy to tomcat"
<echo>deploying from client</echo>
<deploy
url="${tomcat-manager-url}"
username="${tomcat-manager-username}"
password="${tomcat-manager-password}"
path="/${project-name}"
war="file:${build-directory}/${war-file-name}"
update="true"
/>
</target>
结果:
BUILD FAILED
..\build.xml:104: java.net.HttpRetryException: cannot retry due to server authentication, in streaming mode
Total time: 922 milliseconds
蚂蚁在Eclipse中的氧气版本1.10.1;在Tomcat 8.5.11/8.5.20上测试; java版本1.8.0_144。
在8.5中,它应该是文本界面的管理器脚本,因此它需要从7更改。 –