问题描述
我在 Linux 中运行 weblogic 12.4.2,我的开发环境在 Windows 中。 目前,如果我想重新部署该应用程序,我会执行 maven clean install 并使用 ssh 客户端登录到 Linux,终止 weblogic 进程,将我的 jar 文件复制到域目录中,然后再次运行 weblogic。 我想要一个工具,可以将 jar 文件复制到服务器中的适当位置并重新部署应用程序,而无需重新启动 weblogic,并且最好不依赖于 IDE。
我发现 weblogic hot deploy 和 fast swap 无需重新启动即可在 weblogic 上重新部署应用程序。 和 the weblogic.Deployer、管理控制台、wldeploy Ant Task 、WebLogic Scripting Tool 和 weblogic maven plugin 远程部署 weblogic 上的应用程序。 我搜索了它们,但我不确定它们中的哪一个可以一起做所有这些事情,以及它们的优点和缺点是什么。
如果可能,请对现有工具进行比较。 我看到了类似的问题,但他们只专注于重新部署而不重新启动或远程部署,我想要两者。
解决方法
是的,您可以使用 management REST API。
您可以在此处查看 how to deploy/redeploy applications 上的具体示例。
此 REST API 为您提供了部署应用程序(EAR 和 WAR 文件)以及仅使用 curl 工具启动/停止它们的工具。检查一些示例:
# Stops a deployed application
curl -v --user ${USER}:${PASS} \
-H X-Requested-By:MyClient \
-H Accept:application/json \
-H Content-Type:application/json \
-X POST http://localhost:7001/management/weblogic/latest/domainRuntime/deploymentManager/appDeploymentRuntimes/${APP_NAME}/stop
# Deploy an application from a file
curl -v --user ${USER}:${PASS} \
-H X-Requested-By:MyClient \
-H Accept:application/json \
-H Content-Type:multipart/form-data \
-F "model={
name: 'basicapp',targets: [ { identity: [ 'clusters','Cluster1' ] } ]
}" \
-F "sourcePath=@/deployments/BasicApp/app/BasicApp.ear" \
-F "planPath=@/deployments/BasicApp/plan/Plan.xml" \
-H "Prefer:respond-async" \
-X POST http://localhost:7001/management/weblogic/latest/edit/appDeployments
您可以使用 shell 别名和 shell 脚本来自动执行某些操作。