我一直在寻找一种以编程方式让部署停止的方法。
对于我们的用例,我们部署了几个耳朵,其中一个是最重要的耳朵,其他耳朵依赖它。我们确定重要的耳朵首先部署,其他人随后开始并行部署。
我们面临的问题是重要的耳朵可以处于升级模式,这是有效的。
在之后启动的ear中我们检查runmode,当它不正常时,我们抛出RuntimeException。每个ear部署的检查都发生在Singleton Startup EJB3 Bean中。但是当这些抛出RuntimeException时,部署仍处于活动状态。我想通知容器部署应该标记为失败。这样的事情可能吗?
我们使用的技术有:Wildfly 10,Java-ee 7,EJB3。
我在stackoverflow上找到了一个解决方案,它使用命令行CLI来停止部署。 Can a deployment stop itself?在我看来,应该可以在源代码本身中执行此操作。
有什么想法?
答案 0 :(得分:0)
对我而言,部署无法阻止自己是合乎逻辑的。如果可以,应用程序应该在何处报告已成功取消部署?对于不再存在的应用程序?使用CLI的选项在我看来就像你得到的最好的解决方法。
旁注:你为什么要使用多个EAR? EAR可以包含多个WAR和EJB,因此不需要拥有多个EAR。此外,几乎所有项目都可以使用简单的WAR,我多年没有使用过EAR。