0

OSGIバンドルでJavaとHelpGUIを使用していますが、使用するリンクが機能しません。OSGI以外のJavaプロジェクトでHelpGUIを使用すると、同じhtmlファイルで問題なく動作します。考慮しなければならないパスに関するセキュリティ設定や特別なものはありますか?私に知らせてください、私はひどく立ち往生しています。

4

1 に答える 1

2

HelpGuiのソースコードを見る必要があります。OSGiで完全に機能しない理由がわかります(通常、jarファイル内の特定のURL形式のリソースに依存しています)。

net.sourceforge.helpgui.gui.HelpViewページを見ると、222行目あたり:

else //It's perhaps a page on the help toppic
{
//Serach the page from  
int ind = url.lastIndexOf('!');
url = url.substring(ind+1,url.length());
url = url.replaceFirst(MainFrame.helpPath+"/","");
updatePage(getLinkedPage(pageRoot.children(), url), true);
}

エントリのURL形式が実際に異なるため、これはOSGiでは機能しません。たとえば、Equinoxでは、バンドルURLは次のようになります。

bundleresource://2.fwk1657006569:1general/features.html

(他の実装は異なる場合があります、ポイントは、あなたはそれに頼ることができないということです)

「通常のJava」では、URLは次のようになります。

jar:file:/home/demo-helpgui/nonosgi/lib/helpgui-1.1-demo.jar!/docs/help/general/features.html   

修正可能で、それほど難しくはありませんが、HelpGuiの作成者に連絡するか、自分で手を汚す必要があります。

よろしく、フランク

于 2012-08-01T15:38:43.073 に答える