我的html超链接在我的OSGI包中不起作用

时间:2012-08-01 14:24:23

标签: java html jar osgi html-helper

我在OSGI包中使用Java和HelpGUI,并且使用的链接不起作用。当我在非OSGI Java项目中使用HelpGUI时,它们可以在相同的html文件上正常工作。是否有一些安全设置或特殊的路径我需要考虑?让我知道,我被卡住了。

1 个答案:

答案 0 :(得分: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);
}

这在OSGi中不起作用,因为条目的URL格式确实不同。例如,在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作者或亲自弄脏你。

问候,弗兰克