Apache Felix:从没有容器关闭的加载目录中删除JAR

时间:2014-03-03 19:42:32

标签: java tomcat osgi apache-felix osgi-bundle

对于Felix OSGi,使用加载目录中的JAR自动加载包很容易;并且从Felix中停止并卸载捆绑包效果很好。但是,如果要在Tomcat / Java容器仍在运行时从Load目录中删除该文件,该怎么办?当用户在我的应用程序中执行操作以卸载插件时,我想删除JAR文件,这样如果他们向Felix Framework重新启动(也是支持的UI操作),它就不会重新发现JAR并重新加载插件。

当我尝试这样做时,虽然该文件被其他进程锁定。任何人都知道可能锁定它以及如何关闭它以便我可以锁定JAR来移动/删除它?

注意:我尝试使用

关闭Felix Framework
m_fwk.stop();
m_fwk.waitForStop( 0 );

其中m_fwk是org.osgi.framework.launch.Framework的已启动实例

1 个答案:

答案 0 :(得分:0)

原来......有些东西锁定了我的档案。一旦我弄清楚它是什么,这结果与Felix无关。任何有类似问题的人都不应该相信(因为我是OSGi的新手,因为我对文件的锁定与OSGi框架的所有相关或部分相关)。它不在这里,几乎肯定不会,即使对于其他框架也是如此;正如我研究的那样,这将是OSGi的一个主要背离。

无论如何,我的问题通过弄清楚捆绑包的哪个组件没有关闭之前我试图删除被保持打开的JAR,因为我无意中告诉它保持打开状态。 GI,GO。