当前开发/打包/分发(大)java(web)应用程序的方式有什么问题?

Mic*_*l Z 6 java architecture osgi web-applications jar

有很多应用程序正在向osgi发展.互联网上有很多关于使用OSGi的好处的材料.但是我没有看到使用非OSGi(旧方法)构建/分发大型Java Web应用程序的当前方法存在的问题.有人可以

  • 首先概述非OSGi和OSGi开发,打包,分发大型Java Web应用程序的方式.
  • 其次指出与非OSGi方式相关的问题?
  • 第三,如何转向OSGi将解决这些问题.也许还会给出具体的例子和参考资源.

Thi*_*ilo 3

“当前”方式是 WAR 文件,它们不共享。如果您有三个 Web 应用程序,并且它们都使用 commons-lang,则必须部署同一 jar 文件的三个副本(您可能是对的,因为这对大多数人来说并不是一个真正的问题)。

除此之外,OSGi 部署捆绑包,而不是应用程序。这允许应用程序的各个部分在运行时升级或激活。但不确定这对很多人来说是否重要。事实上,缺少“应用程序粒度”导致大量“可移动部分”以构成应用程序的所有捆绑包的形式可见。这让部署人员感到困惑。OSGi 正在努力解决这个问题。

最后,在 OSGi 中,“容器”功能通常也是“应用程序”捆绑包集的一部分(而不是像 JBoss 这样与应用程序代码明显分离的黑盒子)。以某种方式自带容器。非常灵活,但又让部署人员感到困惑。