簡體   English   中英

您可以在不同的 OSGi 包中擁有 JSF 自定義組件嗎?

[英]Can you have JSF custom components in different OSGi bundles?

有沒有人一起使用過 OSGi 和 JSF?

我問是因為 JSF 使用類加載器魔法來查找自定義組件。 從教程(強調我的):

此配置文件最終將是代表此組件的 .jar 文件中的 META-INF/faces-config.xml。 JSF 將在運行時加載的每個 .jar 文件(在 WEB-INF/lib 目錄中用於 .war 文件)中查找這樣的文件名,並在其配置中使用每個文件名。 通過這種方式,可以將多個組件 .jar 文件組合成一個 Web 應用程序,並且每個 .jar 中描述的所有組件都可用於該應用程序。

我希望能夠將 JSF 自定義組件作為 OSGi 包(即自定義組件位於與 JSF 運行時不同的 OSGi 包中)並且讓 JSF 能夠在運行時找到這些組件。

有沒有人做過類似的事情?

我不確定它是否完全回答了您的問題,但我發現這個關於Spring 和 osgi interresting 的線程,尤其是這個特定的答案,其中依賴項和類路徑捆綁在 MANIFEST.MF 中。

該線程還導致了有關 OSGi™ 服務平台的 Spring 動態模塊 (DM) 教程的更新,這也可能引起您的興趣。

可以通過以下方式:

  • 您的 web osgi 包必須在 MANIFEST.MF 中有“Require-Bundle”指向包含組件的包
  • 您的組件 jar 必須具有包含 META-INF 和 META-INF 子包的導出包,其中有任何 JSF 相關文件(當然還有組件的標准包)。 例如:Export-Package: 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM