有人同时使用过 OSGi 和 JSF 吗?
我问这个问题是因为 JSF 使用类加载器魔法来查找自定义组件。来自教程(重点是我的):
这个配置文件最终会
是 META-INF/faces-config.xml 中
代表此的 .jar 文件
成分。JSF 将寻找这样的
每个 .jar 文件中的文件名
在运行时加载的(在里面
.war 文件的 WEB-INF/lib 目录)
并在其中使用它们中的每一个
配置。这样,多个
组件.jar文件可以合并
到一个 Web 应用程序中,并且所有
每个 .jar 中描述的组件
将可供应用程序使用。
我希望能够将 JSF 自定义组件作为 OSGi 捆绑包(即自定义组件位于与 JSF 运行时不同的 OSGi 捆绑包中),并且 JSF 能够在运行时找到这些组件。
有人做过类似的事情吗?
可以通过以下方式实现:
- 您的 Web osgi 捆绑包必须在 MANIFEST.MF 中具有“Require-Bundle”,指向包含组件的捆绑包
- 您的组件 jar 必须具有包含 META-INF 和 META-INF 子包的 Export-Package,其中存在任何 JSF 相关文件(当然还有组件的标准包)。例如:导出包:META-INF,META-INF.resources...
如果您使用 maven-bundle 插件,则必须使用撇号和等号来导出 META-INF 和子包。例如:
<Export-Package>
a.b.c,
'=META-INF',
'=META-INF.resources',
...
</Export-Package>
在 JSF Spec 2.2 中可能有关于 JSF-OSGI 关系的部分。要查看进度请参阅http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942 http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)