如何使用资源路径设置系统属性[Jira插件,OSGI]

时间:2018-10-03 10:16:28

标签: path sdk osgi jira osgi-bundle

我想使用System.setProperty("javax.net.ssl.trustStore", path),其中路径指向项目资源中的jks证书。问题是我的项目是jira插件,它使用OSGI。使用getClass.getResource("certificate.jks")时得到path = "bundle://...",然后找不到证书。我还尝试仅将"/certificate.jks"放到那里,但是它也不起作用。

您是否有解决此问题的想法?预先感谢您的任何想法!

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用Bundle.getEntry(“ path / to / your / trust / store / file / relative / tobundle / root”)然后执行toURI以获取一个可以打开的文件并获取字符串值,然后使用该值设置您在问题中提到的系统属性。 Bundle.getResource方法将搜索其他导入的包的类路径。如果这不起作用,则尝试执行Bundle.getClassLoader()来加载所需的资源,因为您可能会得到不同的类加载器,因为每个捆绑包都使用各自的类加载器。希望这能回答您的提问。