如何在 weblogic 12C 中使用 REST 异步部署应用程序?

How to deploy asynchronously an application using REST in weblogic 12C?

我一直在使用 REST api 和以下代码段

部署一个 weblogic 应用程序
    curl --insecure -X POST  --user ${userpass} -F\"deployment=@${appFileName}\" -F\"model={name: '${appName}',  deploymentOptions: { retireGracefully: 'false', timeout: '0' } , ${appType} ${appPlanVersion} targets: [ ${appTargets} ]}\" ${wlhost}/management/wls/latest/deployments/application "

我必须等到这个 curl 结束,但有时请求会因为服务器配置而超时。

所以,我认为异步执行此操作会更好,我已经阅读了可以使用的文档 header

    -X Prefer:respond-async

但不清楚如何使用它,我找不到有用的示例,一旦我添加了 header,请求将 return 任务 URL喜欢 BODY:

    {
        "links": [{
            "rel": "job",
            "href": "http:\//localhost:7001/management/weblogic/latest/domainRuntime/deploymentManager/deploymentProgressObjects/fairShare"
        }],
        "operationType": 5,
        "state": "STATE_RUNNING",
        "applicationName": "fairShare",
        "progress": "processing",
        "completed": false
    }

我如何轮询该作业 URL 以了解该应用程序已部署并且处于活动状态?

如果你要执行:

curl --insecure -X GET --user ${userpass} ${wlhost}/management/tenant-monitoring/applications/${appName}

当应用程序 ${appName} 未部署时,您应该收到 404 Not Found。

部署后,您应该会得到一个 JSON 类似于:

{
"body": {
    "item": {
        "name": "${appName}",
        "type": "ear",
        "state": "STATE_ACTIVE",
        "health": "HEALTH_WARN",
        "targetStates": [
            {
                "target": "wls",
                "state": "STATE_ACTIVE"
            }
        ],
        "dataSources": [],
        "workManagers": [
            {
                "pendingRequests": 0,
                "completedRequests": 125,
                "name": "default",
                "server": "wls"
            }
        ],
        "minThreadsConstraints": [],
        "maxThreadsConstraints": [],
        "requestClasses": []
    }
},
"messages": []
}

已在 WebLogic 12.2.1.4 上测试(在 Postman 中)

答案是使用请求参数_detached=true 在 post URL 中, 这将异步启动部署

有关示例,请参阅此文档。

https://docs.oracle.com/middleware/1213/wls/WLRMR/management_wls_version_deployments_application.htm#WLRMR290