【问题标题】:How to set system property with path of resource [Jira plugin, OSGI]如何使用资源路径设置系统属性 [Jira 插件,OSGI]
【发布时间】:2018-10-03 10:16:27
【问题描述】:

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

您对如何解决这个问题有一些想法吗?提前感谢您的任何想法!

【问题讨论】:

  • 这是不可能的,osgi bundle资源不能作为文件系统上的普通文件访问。

标签: path sdk osgi jira osgi-bundle


【解决方案1】:

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

【讨论】:

  • 很抱歉,我无法测试它,因为我无法访问 Jira 插件中的 Bundle,但感谢您的回答。
猜你喜欢
  • 2018-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
相关资源
最近更新 更多