gpt4 book ai didi

java - 在 Tomcat 上 curl 部署版本化 war

转载 作者:行者123 更新时间:2023-11-30 10:20:30 26 4
gpt4 key购买 nike

我正在尝试在 Tomcat 上部署版本化 war 。

正如你们中的许多人可能知道的那样,Tomcat 中有一个负载平衡器,它将在最新版本的 war\app 上重定向所有新 session ,您只需要将版本放在两个 ## 之后。 (例如:mywar##1.0.1.war)

我正在使用 curl 成功部署:

curl -T "MyApp##001.war" https://${username}:${password}@${host}/manager/text/deploy?path=/MyApp&update=true" 

但是,一旦部署我就找不到版本了!

-T 之后我已经尝试了所有可能的组合在 path=/ 之后, 这是一个错误还是有什么方法我不能用 curl 做到这一点?

我想使用 Tomcat Manager 而不是将 war 放在里面 /webapps因为这个脚本完全符合我们的安全政策。

最佳答案

看起来您只是缺少 version 参数:

$ curl -T "MyApp##001.war" "https://${username}:${password}@${host}/manager/text/deploy?path=/MyApp&update=true&version=001"

如果没有“版本”参数,Tomcat 就不知道您正在尝试进行并行部署。事实上,您可能使用原始命令部署了无版本 WAR。

您可能认为 curl 以某种方式将文件名 (MyApp##001.war) 发送到 Tomcat,并且 Tomcat 应该从文件名中检测版本号,并且使用它,但你会错的。 curl 仅在 URL(路径)以 / 字符结尾时才发送文件名。在这种情况下,curl 实际上会将文件名附加到 URL 的末尾,并使用它来联系服务器(它不会起作用)。

关于java - 在 Tomcat 上 curl 部署版本化 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48173104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com