部署到通过CLI远程GlassFish实例(Deploy to remote Glassfish i

2019-09-23 01:37发布

我想我们会自动从我们构建服务器(詹金斯)的Java EE应用程序部署到通过命令行远程GlassFish服务器。 目前我使用的asadmin,这和它工作正常,但该选项要求我必须构建服务器以及安装Glassfish的 - 我想避免,因为我并不需要它。 构建服务器真的只运行构建和部署,所以我想保持服务器作为“干净”成为可能。

我找不到只安装的asadmin工具的任何下载,也是我尝试过只将所需的文件未能手动复制,因为有一些依赖于一定的* .jar文件,我不知道,因此它总是失败,除非我整个GlassFish安装文件夹复制到构建服务器。

所以我的问题是:是否有人知道如何在不安装整个GlassFish服务器只安装asadmin的工具? 另外我也很高兴,因为他们让我部署到使用安全通信的远程Glassfish的情况下使用任何其他命令行工具为长。

Answer 1:

做了些研究后,我放弃了在试图安装的asadmin不完整的GlassFish安装和替代GlassFish的REST管理界面。

我现在做的工作是在一个简单的批处理文件使用curl:

curl.exe ^
    --user glassfish_username:glassfish_password ^
    --insecure ^
    -H "Accept: application/json" ^
    -H "X-Requested-By: dummy" ^
    -X POST ^
    -F id=@yourfile.war ^
    -F contextroot=yourcontextroot ^
    -F force=true ^
    https://yourservername:4848/management/domain/applications/application/

该REST API是相当简单的,一旦你知道你需要什么做的,但以防万一别人需要这个,这里几个要点:

  • --insecure需要(通过卷曲),允许自签名的和不受信任的SSL证书
  • 报头属性“接受”和“X-请求-所谓”必须被设置,否则Glassfish的不处理该请求,并简单地返回空白文档作为ansower。 不知道为什么,但设置使工作这些参数。
  • 战争文件的内容作为文章上的“ID”参数传递
  • 该URL必须严格按照上面的剪断所示,即不与你的域名或“应用”与您的应用程序的名称取代“域”。 这是实际的REST接口的端点。 没有必要在任何地方指定域/应用程序名称。


文章来源: Deploy to remote Glassfish instance via cli