我想我们会自动从我们构建服务器(詹金斯)的Java EE应用程序部署到通过命令行远程GlassFish服务器。 目前我使用的asadmin,这和它工作正常,但该选项要求我必须构建服务器以及安装Glassfish的 - 我想避免,因为我并不需要它。 构建服务器真的只运行构建和部署,所以我想保持服务器作为“干净”成为可能。
我找不到只安装的asadmin工具的任何下载,也是我尝试过只将所需的文件未能手动复制,因为有一些依赖于一定的* .jar文件,我不知道,因此它总是失败,除非我整个GlassFish安装文件夹复制到构建服务器。
所以我的问题是:是否有人知道如何在不安装整个GlassFish服务器只安装asadmin的工具? 另外我也很高兴,因为他们让我部署到使用安全通信的远程Glassfish的情况下使用任何其他命令行工具为长。
做了些研究后,我放弃了在试图安装的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接口的端点。 没有必要在任何地方指定域/应用程序名称。