我有一个第三方JAR,我已经转换为一个OSGI捆绑使用bnd。我需要调用从我自己的捆绑使用它的代码看起来是这样的:OSGI - 捆绑静态方法调用
ThirdParty.setRegKey(myRegKey);
ThirdParty thirdParty = new ThirdParty();
thirdParty.callMethod();
什么似乎导致我的问题是第一线 - 静态方法调用。在OSGI容器之外,使用标准JAR,这可以正常工作。但是,在OSGI内部,我在第3行得到一个错误,说明没有设置注册密钥。
这样的捆绑包的静态方法调用是否存在任何问题?这几乎就好像静态上下文不在捆绑包中共享。
感谢您的澄清。在第三方捆绑包清单中,我有Export-Package:com.thirdparty.package,然后在我的捆绑软件清单中导入包:com.thirdparty.package。你是这个意思吗? – William 2009-09-01 08:43:14
示例代码表明MANIFEST导入和导出是正确的,否则他将无法编译,并且所述问题是第三行上的运行时失败。 – SteveD 2009-09-02 08:48:49
@威廉是的。但是,如果你的代码全部在一个包中,这不应该成为问题。 – starblue 2009-09-02 19:35:14