有没有人一起使用OSGi和JSF?
我问,因为JSF使用类加载器魔术来查找自定义组件。从教程(强调我的):
此配置文件将结束 是的META-INF / faces-config.xml 代表这个的.jar文件 零件。 JSF会寻找这样的 每个.jar文件中的文件名 在运行时加载(在 .war文件的WEB-INF / lib目录) 并在其中使用它们中的每一个 组态。这样,多个 组件.jar文件可以组合 一个Web应用程序,以及所有 每个.jar中描述的组件 将可用于该应用程序。
我希望能够将JSF自定义组件作为OSGi包(即自定义组件与JSF运行时不同的OSGi包)以及JSF能够在运行时找到它们。
有没有人做过类似的事情?
答案 0 :(得分:1)
我不确定它是否能完全解决您的问题,但我发现此线程关于Spring and osgi有趣,特别是此specific answer,其中依赖项和类路径捆绑在MANIFEST.MF中。
该线程还导致tutorial about Spring Dynamic Modules (DM) for OSGi™ Service Platforms的更新,这也可能是有意义的。
答案 1 :(得分:1)
可以通过以下方式:
如果您使用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