2

我正在寻找正确的方法来使某个 OSGI 包中的导出包中的类可供部署在 JBoss AS 7 中的所有 Java EE 应用程序访问。到目前为止,我一直在做的解决方法是将 OSGI 包 jar 放在JBOSS_HOME/standalone/deployments 文件夹,然后每次我需要访问的地方我在它的 MANIFEST.MF 文件中添加这一行 Dependencies: deployment.<OSGIBundleName>:<OSGIBundleVersion>

我的问题是:有没有办法在 JBoss 中发布 OSGI 包(在“bundles”文件夹中?)并指示应用程序服务器将包导出的包访问到其中部署的任何应用程序?

我知道使用模块(https://community.jboss.org/message/604576)可以使JBoss中的所有应用程序都可以访问包,但我想知道是否可以使用OSGI包来代替。

4

2 回答 2

0

把它们放在“bundles”文件夹中?

于 2012-04-26T15:07:23.810 回答
0

我认为这不会起作用,因为如果不是“OSGi 模式”,JBoss 可能会忽略清单中的 Export-Packages 部分(不过我在这里猜测)。

如果我是你,我会将包拆分为导出所有类的 API 包和依赖于它的实现包。您可以将 API 包视为普通 jar,因为无论它是否在 OSGi 上下文中使用,它都会公开相同的类。

于 2012-04-27T13:33:36.943 回答