我想使用Wildfly-HTTP-API编写一个shell脚本来部署wars,而不是cli,这似乎没有预期的那么有效。我找到了一个脚本,其中一部分是:
echo "-> Upload new war"
bytes_value=`curl -sF "file=@${WAR_PATH}/${WAR_NAME}" --digest ${WILDFLY_MANAGEMENT_URL}/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":"'"${WAR_NAME}"'"}], "operation":"add", "enabled":"true"}'
json_string="$json_string_start$bytes_value$json_string_end"
echo "-> Deploy new war"
result=`curl -sS -H "Content-Type: application/json" -d "$json_string" --digest ${WILDFLY_MANAGEMENT_URL}/management | perl -pe 's/^.*"outcome"\s*:\s*"(.*)".*$/$1/'`
echo $result我习惯于将JSON字符串转换为CLI命令,但步骤
'{"content":[{"hash": {"BYTES_VALUE" : "$bytes_value"}}], "address": [{"deployment":"${WAR_NAME}"}], "operation":"add", "enabled":"true"}'这让我感到困惑,因为我找不到使用/deployment段的命令行界面的对应命令:
[domain@$ip:9990 /] /deployment=${WAR_NAME}:add(content=[hash= 我不知道怎么做,有谁能帮我一下吗?
发布于 2017-03-07 21:10:29
要上传内容,您可以使用streams (它们将进入WildFly 11中的命令行界面)。cli使用Http-API (至少在Wildfly 10中),因为这是默认的管理接口。哈希是上传内容的摘要,您应该添加{WAR_NAME}:/deployment=$(content=[bytes=]以添加内容本身或使用url参数(如果您与DC在同一台计算机上,则文件url确实有效)。
https://stackoverflow.com/questions/42622732
复制相似问题