如何使用资源路径 [Jira 插件,OSGI] 设置系统 属性
How to set system property with path of resource [Jira plugin, OSGI]
我想使用 System.setProperty("javax.net.ssl.trustStore", path)
,其中路径指向项目资源中的 jks 证书。问题是我的项目是 jira 插件,它使用 OSGI。当我使用 getClass.getResource("certificate.jks")
时,我得到 path = "bundle://..."
然后找不到证书。我也试着把 "/certificate.jks"
放在那里,但它也没有用。
你有解决这个问题的想法吗?预先感谢您的任何想法!
一种解决方案是使用 Bundle.getEntry("path/to/your/trust/store/file/relative/tobundle/root") 然后执行 toURI 以获取一个您可以打开的文件并获取字符串值,然后使用该值设置系统 属性 你在问题中提到。 Bundle.getResource 方法将搜索 class 其他导入包的路径。如果这不起作用,那么尝试执行 Bundle.getClassLoader() 来加载你想要的资源,因为你可能会得到一个不同的 class 加载器,因为每个包都使用它们自己的。希望这能回答你的问题。
我想使用 System.setProperty("javax.net.ssl.trustStore", path)
,其中路径指向项目资源中的 jks 证书。问题是我的项目是 jira 插件,它使用 OSGI。当我使用 getClass.getResource("certificate.jks")
时,我得到 path = "bundle://..."
然后找不到证书。我也试着把 "/certificate.jks"
放在那里,但它也没有用。
你有解决这个问题的想法吗?预先感谢您的任何想法!
一种解决方案是使用 Bundle.getEntry("path/to/your/trust/store/file/relative/tobundle/root") 然后执行 toURI 以获取一个您可以打开的文件并获取字符串值,然后使用该值设置系统 属性 你在问题中提到。 Bundle.getResource 方法将搜索 class 其他导入包的路径。如果这不起作用,那么尝试执行 Bundle.getClassLoader() 来加载你想要的资源,因为你可能会得到一个不同的 class 加载器,因为每个包都使用它们自己的。希望这能回答你的问题。