刷新OSGI应用程序上下文

时间:2018-07-11 13:40:34

标签: osgi osgi-bundle applicationcontext

我正在开发OSGI应用程序,我需要在运行时刷新application-context.xml。

我想使用

String ctxPath = ....
ApplicationContext ctx = new FileSystemXmlApplicationContext(ctxPath);
((ConfigurableApplicationContext)ctx).refresh();

问题是-我找不到一种方法来获取我的application-context.xml(在OSGI捆绑包中)的路径。我知道的进入包文件的唯一方法是使用

InputStream inputStream = new BufferedInputStream(this.getClass().getClassLoader().getResourceAsStream("/application-context.xml"));

但是我无法从InputStream获取路径。任何想法如何使这项工作?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是获取InputStream(也可以获取Bundle.getEntry for that),然后将文件保存在您知道路径的位置。我已经在几种应用程序中看到了这种方法,所以我认为它是正确的。