【问题标题】:WebLogic and OSGiWebLogic 和 OSGi
【发布时间】:2012-06-17 10:24:59
【问题描述】:

有没有办法在 Weblogic Application Server 中运行 OSGi 容器?我知道它可以与 JBoss、Glassfish 一起使用,并且有可能在您的 OSGi 项目中添加 Equinox servlet 桥接器(桥接器的实现太旧了)。但我想要类似于 JBoss/Glassfish 功能的东西,因为已经有 OSGi 实现,所以部署 OSGi 环境非常容易。我发现的大多数文章都非常旧,而且没有更近期的了。有人可以提供提示或更好的链接吗?

也许 Bnd 可以为我创建一个 .war 文件,但我怎样才能实现它。我读到有可能。例子会很棒!

编辑

仅适用于仍在调查此案的人。从 12.1.2 版开始,Weblogic 支持开箱即用的 OSGi。

【问题讨论】:

  • 您好!感谢您的编辑...但是,我看到 (blogs.oracle.com/cloudappfoundation/entry/…) 问题:“您能否评论一下 osgi (bundles) 对 wls 12c 的支持?” 回答为: “WebLogic Server 使用 OSGi 进行内部模块化。OSGi 还被用于在 WebLogic Server 的 Oracle SOA 套件中交付诸如 Oracle 复杂事件处理器 (CEP) 之类的产品。” 这听起来很像“我们在内部和内部使用 OSGi oracle soa 套件”,但在部署您自己的包的可能性上留下了歧义......

标签: deployment weblogic osgi bnd


【解决方案1】:

我会考虑Apache Felix Http bridge。它对我来说比古老的 Equinox 桥好得多(我把它弄乱了一段时间,但从来没有让它很好地工作),在我切换到 Felix 之后,我很快就得到了一些东西。

如果我理解正确的话,您想制作一个“普通”的战争文件,它可以部署在任何 Java EE 服务器中。如果是这样的话,你的war文件就没有OSGi,所以我认为Bnd不会为你做任何事情。

【讨论】:

  • 嗨弗兰克!谢谢回复。在你给我写信的同一分钟,我找到了 Felix 桥 ^^ 我不想要一个“普通”的战争文件。我将 OSGi 用于我的整个后端系统,现在需要在应用程序/Web 服务器中运行它。在 JBoss 和 Glassfish 中这很容易,因为它们默认具有 Felix 运行时,并且您可以通过热部署添加捆绑包。但我还必须评估 WebLogic,我正在寻找类似于 JBoss/Glassfish 正在做的事情。在最好的情况下我不需要桥接器,但在 WebLogic 的情况下恐怕没有其他方法。
  • 据我所知 (?),WebLogic 本身并不支持 OSGi。如果是这样的话,你就会被某种“桥梁”困住。我将 Felix 桥与 Felix 文件安装结合使用,所以我基本上在 Tomcat 或任何其他 J2EE 服务器中进行热部署。它工作得很好,虽然“真正的”OSGi 服务器更漂亮。
  • 看看 Eclipse Virgo,它也位于 J2EE 和 OSGi 之间
  • 你使用来自 Felix repo 的示例桥吗?或者您是否有任何类型的链接指向有关它的更多信息?
  • 我没有找到太多。我以示例为基础,但需要对其进行一些修改,因为我的应用程序的某些部分无法在 OSGi 中运行,因此我需要跨“OSGi 边界”共享一些信息。最后,您只需注册一个启动和停止 OSGi 容器的 webcontextlistener,然后将该容器保存在 ContextAttribute 中。有一些微妙之处,但仅此而已。
【解决方案2】:

WebLogic 现在在 12.1.2 版本中支持 OSGi。见this

【讨论】:

  • 嗨阿比德。谢谢你的评论。我已经用相同的信息更新了我的第一篇文章;)
猜你喜欢
  • 2016-06-29
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
相关资源
最近更新 更多