我目前正在部署我的自定義控件作爲OSGi插件,我想用我的豆做同樣的事情。我已經嘗試把它們放入OSGi插件,它工作正常,但我唯一的問題是faces-config。在OSGi插件中部署BEAN
看來它必須在OSGi插件中調用faces-config才能工作,但這意味着我不能在NSF中使用bean,因爲它似乎忽略了本地faces-config。
有沒有辦法改變OSGi插件中faces-config的名字?
Something like FEATURE-faces-config.xml?
我目前正在部署我的自定義控件作爲OSGi插件,我想用我的豆做同樣的事情。我已經嘗試把它們放入OSGi插件,它工作正常,但我唯一的問題是faces-config。在OSGi插件中部署BEAN
看來它必須在OSGi插件中調用faces-config才能工作,但這意味着我不能在NSF中使用bean,因爲它似乎忽略了本地faces-config。
有沒有辦法改變OSGi插件中faces-config的名字?
Something like FEATURE-faces-config.xml?
在擴展AbstractXspLibrary的插件中的類中,可以覆蓋「getFacesConfigFiles」,它應該將代表插件內路徑的字符串數組返回到任何名稱的其他文件以加載爲faces-config添加。例如:
@Override
public String[] getFacesConfigFiles() {
return new String[] {
"com/example/config/beans.xml"
};
}
然後你就可以把你的Java源文件夾內的路徑配置文件(或包含在build.properties另一個文件夾),它會在除了你的應用程序的正常faces-加載配置,豆和所有。
Thx多數民衆贊成在我正在尋找。 – user2316219
NSF作爲單獨的獨立Java應用程序運行。 OSGi插件作爲單個代碼庫在OSGi層中運行,高於所有不同的Java應用程序。因此,faces-config僅在該級別。
通過使用從XspContributor加載的ImplicitObjectFactory,可以動態加載它們。這就是OpenNTF Domino API在例如userScope(這是一個存儲在NSF的applicationScope中的bean)。請參閱org.openntf.domino.xsp.helpers.OpenntfDominoImplicitObjectFactory,它在OpenntfDominoXspContributor中引用,通過類型爲「com.ibm.xsp.library.Contributor」的擴展點加載。
幾個注意事項:
跳過bean方法可能會更簡單,只需在beforePageLoad,頁面控制器類中添加Java類的實例,或者您要管理相關XPage(如果viewScope)或應用程序(如果sessionScope/applicationScope)。
你能否澄清「它似乎忽略了本地faces-config」?你的意思是你嘗試在OSGi插件中使用Java類並在NSF的faces-config中引用該類,並且這種方法無效? –
我有兩個豆子。一個通過OSGI插件部署。我還將faces-config文件插入到WEB-INF文件夾中。然後在我的NSF中的一個BEAN中,我也想使用插件中的BEAN。在我的NSF中,我將bean放入「local」faces-config中,但似乎它忽略了本地faces-config,一旦我有一個來自OSGI插件。 – user2316219
他們都有同名嗎? –