加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

curl – 通过HTTP API替换wildfly上的部署

发布时间:2020-12-14 01:50:28 所属栏目:Linux 来源:网络整理
导读:我们想用curl替换app.war的现有部署.下面的帖子提供了部署war文件的好方法.只要没有使用相同名称部署的war文件,这种方法就可以正常工作.但是,如果已经存在部署,则失败.有什么办法可以通过curl替换现有的部署吗? http://blog.arungupta.me/2014/01/deploy-to
我们想用curl替换app.war的现有部署.下面的帖子提供了部署war文件的好方法.只要没有使用相同名称部署的war文件,这种方法就可以正常工作.但是,如果已经存在部署,则失败.有什么办法可以通过curl替换现有的部署吗?

http://blog.arungupta.me/2014/01/deploy-to-wildfly-using-curl-tech-tip-10/

有没有办法获得wildfly的HTTP API的完整界面文档

解决方法

我们写了一个小的Shell脚本来实现这个目的:

#!/bin/bash
echo "Undeploy old war"
curl -S -H "content-Type: application/json" -d '{"operation":"undeploy","address":[{"deployment":"old.war"}]}' --digest http://user:password@hostname:9990/management
echo ""

echo "Remove old war"
curl -S -H "content-Type: application/json" -d '{"operation":"remove","address":[{"deployment":"old.war"}]}' --digest http://user:password@hostname:9990/management
echo ""

echo "Upload new war"
bytes_value=`curl -F "file=@/path/to/new.war" --digest http://user:password@$hostname:9990/management/add-content | perl -pe 's/^.*"BYTES_VALUE"s*:s*"(.*)".*$/$1/'`
echo $bytes_value

json_string_start='{"content":[{"hash": {"BYTES_VALUE" : "'
json_string_end='"}}],"address": [{"deployment":"new.war"}],"operation":"add","enabled":"true"}'
json_string="$json_string_start$bytes_value$json_string_end"

echo "Deploy new war"
result=`curl -S -H "Content-Type: application/json" -d "$json_string" --digest http://user:password@hostname:9990/management | perl -pe 's/^.*"outcome"s*:s*"(.*)".*$/$1/'`
echo $result

if [ "$result" != "success" ]; then
  exit -1
fi

首先,旧的WAR-File将被删除.之后,新的存档被上传和部署.
对我们来说,即使尚未部署任何内容,这仍然有效.在这种情况下,前两个调用将失败,但无论如何都将部署新内容.

通过从Wildfly Maven-Plugin切换到此脚本,我们能够将部署时间从大约20分钟缩短到4分钟!

希望有所帮助.干杯

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读