- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
据我了解,在 OSGi 中,您可以在运行时更新 jar,而无需重新启动服务器。但是jboss也有hot-deployment,就是全ear更新,服务器还在运行。
那么 OSGi 在 jboss 中的企业 java 项目中有什么好处?
最佳答案
我相信答案与每个 OSGi 用例相同:模块化和更精细的更新粒度。
OSGi 不仅仅是在运行时更新 jar 而无需重新启动服务器。从您的问题的角度来看,它是在运行时更新 jar 而无需重新启动应用程序。
我承认我不知道 JBoss AS 中 EAR 热部署的具体实现,但无论如何 EAR 更新不可能被设计成保留应用程序的整个状态。服务器仍在运行,但您实际上是在更新后重新启动应用程序。这种状态丢失的程度实际上取决于您如何设计您的应用程序,但事实仍然是您正在独立地做事。
对于 OSGi,情况并非如此:应用程序由大量 bundle 组成,每个 bundle 都有望设计用于处理功能的单独部分。这种方法可以实现应用程序内的热部署,因为框架的设计考虑了重启任何一个 jar 对整个应用程序带来的影响,并让其他 jar 做出适当的 react 。这提供了尽可能多地保留应用程序状态的能力。
因此,OSGi 设计在企业案例中的优势在于应用程序的活跃度。无需强调这一点的重要性。确实,有些用例可以安全地重启应用程序。但在我看来,OSGi 是当今 Java EE 唯一真正可扩展和可维护的选择。最重要的应用程序服务器已经(或将要)转移到 OSGi 运行时(并因此提供 OSGi 应用程序支持)这一事实就是证明。
关于java - OSGi 与 jboss 热部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679536/
我想要类似于以下伪代码的东西: while input is not None and timer = 5: print "took too long" else: print inp
如何将 MainEngine Observable 转换为 Cold?来自这个例子: public IObservable MainEngine { get
自从手表被发明以来,表盘的方圆之争就始终没有停下来过,在漫长的岁月中,无论是方形还是圆形表盘,人们都为其寻找到足够多的设计元素,让其肆意成长,这种生机与活力后来也延续到了智能手表上,在2014年,这
我正在学习 CUDA,试图解决一些标准问题。例如,我正在使用以下代码求解二维扩散方程。但我的结果与标准结果不同,我无法弄清楚。 //kernel definition __global__ void
我的 Web 应用程序使用 native dll 来实现其部分功能(其位置在 PATH 中提供)。一切正常,直到我对 WAR 进行更改并且 JBoss 热部署此 WAR。此时dll已经找不到了,需要手
我看到这个问题here 。这是关于实现每个发出的项目的延迟。这是根据accepted answer如何实现的: Observable.zip(Observable.range(1, 5) .g
我最近一直在进行冷迁移...这意味着我无法在进行迁移时从应用程序级别读取/写入数据库(维护页面)。 这样就不会因为更改结构而发生错误,而且如果负载很大,我也不希望 mysql 在迁移过程中崩溃。 我的
我是一名优秀的程序员,十分优秀!