Java 在不同的OSGi捆绑包中可以有JSF自定义组件吗?

Java 在不同的OSGi捆绑包中可以有JSF自定义组件吗?,java,jsf,osgi,Java,Jsf,Osgi,有人一起使用过OSGi和JSF吗 我这样问是因为JSF使用类装入器魔法来查找自定义组件。来自教程(我的重点): 此配置文件将结束 在中是META-INF/faces-config.xml .jar文件,该文件表示 组成部分JSF将寻找这样一个 每个.jar文件中的文件名 在运行时加载的(在 WEB-INF/lib目录(用于.war文件) 并在其各自的应用程序中使用它们 配置这样,多个 jar文件可以组合在一起 集成到一个web应用程序中,以及所有 每个.jar中描述的组件 将对应用程序可用 我希

有人一起使用过OSGi和JSF吗

我这样问是因为JSF使用类装入器魔法来查找自定义组件。来自教程(我的重点):

此配置文件将结束 在中是META-INF/faces-config.xml .jar文件,该文件表示 组成部分JSF将寻找这样一个 每个.jar文件中的文件名 在运行时加载的(在 WEB-INF/lib目录(用于.war文件) 并在其各自的应用程序中使用它们 配置这样,多个 jar文件可以组合在一起 集成到一个web应用程序中,以及所有 每个.jar中描述的组件 将对应用程序可用

我希望能够将JSF自定义组件作为OSGi捆绑包(即自定义组件与JSF运行时位于不同的OSGi捆绑包中),并且JSF能够在运行时找到这些组件


有人做过类似的事情吗?

我不确定它是否能准确回答您的问题,但我发现了这个关于相互测试的线程,特别是在MANIFEST.MF中捆绑了依赖项和类路径的情况下


该线程也会导致更新此线程,这可能也会引起关注。

可以通过以下方式实现:

  • 您的web osgi捆绑包必须在MANIFEST.MF中包含指向包含组件的捆绑包的“Require bundle”
  • 组件jar必须有包含META-INF的导出包和META-INF的子包,其中包含任何JSF相关文件(当然还有组件的标准包)。例如:导出包:META-INF,META-INF.resources
如果您使用maven bundle插件,那么导出META-INF和子包时必须使用撇号和等号。例如:

<Export-Package>
  a.b.c,
  '=META-INF',
  '=META-INF.resources',
  ...
</Export-Package>

a、 公元前,
“=META-INF”,
“=META-INF.resources”,
...
在JSF规范2.2中,可能有关于JSF-OSGI关系的部分。要查看进度,请参阅