如何在 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 中,
这将异步启动部署
有关示例,请参阅此文档。
我一直在使用 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 中, 这将异步启动部署
有关示例,请参阅此文档。