我有一个简单的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
非常感谢任何关于如何使用此属性的提示。
答案 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元数据,在这种情况下,您可能需要:
我保留了&lt; application-bundle-symbolic-name&gt;,请注意&lt; application-bundle-symbolic-name&gt;中引用的包。 element应该是一个允许您从OSGi Framework实例访问WEB或Enterprise应用程序所需的所有服务的元素。