簡單的問題是:如何使Java資源包可用於從Worklight適配器訪問的Java JAR中進行編碼?我認爲這相當於:Worklight適配器下的Java使用的類路徑是什麼?工作燈適配器,Java類路徑
原因:我們使用與特定企業服務通信的第三方Java庫,它具有自己的配置機制來確定服務的位置,該機制使用資源束。
我們把庫JAR在服務器/ lib文件夾,併成功可以調用從適配器庫代碼:
manager = com.third.party.manager.getInstance();
// manager is correctly obtained
token = manager.talkToServer();
// this fails with an error indicating that the server location is unknown
我們看到第三方代碼試圖使用的正是這種模式,特別是the3的getBundle的變體光盤()是如下所示:
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("ThirdParty");
Enumeration<String> enumeration = bundle.getKeys();
while (enumeration.hasMoreElements()){
String str = enumeration.nextElement();
System.out.println("property " + str);
//etc
現在,我期待我的包資源包在一個新的JAR文件的基礎並將其添加到服務器的/ lib目錄,並將它撿起。我創建了資源JAR文件,其中包含
ThirdParty.properties
,並作爲測試創建了一個包含上面的代碼有點Java應用程序,並增加了資源JAR到應用程序的類路徑;我們按預期加載的包。
我然後轉換是Java中適配器代碼:
var bundle = java.util.ResourceBundle.getBundle("ThirdParty");
var enumeration = bundle.getKeys();
while (enumeration.hasMoreElements())
{
var str = enumeration.nextElement();
var val = bundle.getString(str);
}
加入我的財產的JAR文件到服務器的/ lib和得到一個異常告訴我的包不能被發現。
對更好的類路徑的建議?
謝謝,這確實工作。這與我最初的情況稍有不同,相當於PropGetter的封裝在JAR中,但我也這樣做了,它仍然可以正常工作。第三方案件堅決地失敗,我直接從javascript調用ResourceBundle。我會繼續挖掘,至少這個答案證實了資源加載的一般情況的行爲如預期。 – djna