WebLogic 12c 3 OSGi - 多个捆绑包

时间:2014-09-08 16:42:11

标签: web-applications osgi weblogic12c osgi-bundle

我有一个简单的Web应用程序,其中包含许多OSGi包。

目前weblogic.xml中的osgi-framework-reference只允许您直接引用单个bundle,它确实提供了一个选项来指定 bundles-directory (见下文)但文档中没有任何内容告诉您此捆绑包目录是文件系统位置还是war文件中的位置。 (请参阅下面的WebLogic开发人员指南中的示例。)

<osgi-framework-reference>
    <name>test-osgi-frame</name>
    <application-bundle-symbolic-name>com.oracle.weblogic.test.client</application-bundle-symbolic-name>
    <bundles-directory>rashi/osgi-lib</bundles-directory>
</osgi-framework-reference>

http://docs.oracle.com/middleware/1212/wls/WLPRG/osgi.htm#WLPRG801

非常感谢任何关于如何使用此属性的提示。

1 个答案:

答案 0 :(得分:0)

似乎&lt; application-bundle-symbolic-name&gt;仅用于允许WebLogic将org.orgi.framework.Bundle实例放在jndi树中作为引用符号名称。

我忽略了&lt; bundles-directory&gt;选项并将我的所有软件包放在WEB-INF / osgi-lib中,从那里正确安装它们。请务必检查server.log以确定所有捆绑包已成功启动,如果仅安装,则可能表明捆绑包/ jar(尤其是第三方组件)未在MANIFEST.MF中携带任何OSGi元数据,在这种情况下,您可能需要:

  • 寻找兼容OSGi的版本
  • WRAP或BND the jar

我保留了&lt; application-bundle-symbolic-name&gt;,请注意&lt; application-bundle-symbolic-name&gt;中引用的包。 element应该是一个允许您从OSGi Framework实例访问WEB或Enterprise应用程序所需的所有服务的元素。