OSGi - 这项技术有多成熟?

pea*_*kit 14 java spring osgi maven-2 struts2

我有我需要共享某些网络资源(的要求jsp,html,js,images,css在不同等)的Spring基于Struts 2应用程序.并且似乎OSGi可以用来实现这一目标?

  • 有人可以就如何实现这一点给出一些指示OSGi吗?
  • 其次,我想知道它是否OSGi足够成熟,可以用于生产应用程序?

提前致谢!

编辑: 我经历了这篇文章,看起来人们可以跨Web应用程序共享一个Web包.唯一的区别是他们用Spring MVC做到了.我想知道是否可以用Struts2应用程序实现这一点?

编辑2:我基本上不清楚以下内容:

  • 'shareable-bundle'(包含要共享的Web资源)是否为.war打包.如果是,那么最终的Web上下文将从何处形成,因为该bundle再次与主"web"应用程序共享?我期待最终的Web上下文是由'shareable-bundle'和'main'Web应用程序的合并而形成的.它会自动发生吗?有任何想法吗?

Pas*_*ent 7

虽然OSGI可能是一个解决方案,但它可能有点矫枉过正(而且,正如Bozho指出的那样,你需要一个支持OSGI的容器).也许看看如何在Maven中跨项目共享资源以获取其他选项:

在这个博客中,我将展示如何做第二个选项,因为在我看来,它目前是最稳定和最灵活的.将来,我将试用maven-remote-resources-plugin并编写教程.

编辑:回答OP的评论.是的,它的想法是创建可共享Web资源的程序集,并使用maven-dependency-plugin在"资源 - 消费者"项目中提取和解压缩程序集.所有这些都在上面提到的博客文章中进行了解释和详述.如果有任何不清楚之处,请告诉我.


Boz*_*zho 6

OSGi用于Eclipse,GlassFish,ServiceMix(以及其他),它们是成熟的软件产品.但是,它们本质上非常具体,我个人认为,OSGi不太适合普通类型的项目.据我所知(有人纠正我,如果这个领域有新闻),如果你想将OSGi用于Web应用程序,你需要一个OSGi捆绑的servlet容器.此外,在OSGi包中放置资源(html,js,图像)可能很麻烦.