gpt4 book ai didi

java - OSGI - 跨包的静态方法调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:07 24 4
gpt4 key购买 nike

我有一个第 3 方 JAR,我已使用 bnd 将其转换为 OSGI 包。我需要调用以从我自己的包中使用它的代码如下所示:

ThirdParty.setRegKey(myRegKey);
ThirdParty thirdParty = new ThirdParty();
thirdParty.callMethod();

第一行似乎给我带来了问题——静态方法调用。在 OSGI 容器之外,使用标准 JAR,这工作正常。然而,在 OSGI 内部,我在第 3 行收到一个错误,指出没有设置注册 key 。

像这样跨包的静态方法调用有什么问题吗?就好像静态上下文没有在 bundle 之间共享一样。

最佳答案

你调试过代码吗?由于您没有告诉我们您正在使用哪个第 3 方库并且我们不知道您的完整环境,因此它可能是 setRegKey()callMethod() 正在尝试做一些在 OSGi 中不起作用的“智能”操作。

JDBC 驱动程序管理器存在这个问题,您的包导入了 JDBC 驱动程序类,但驱动程序管理器决定来自您的包的调用线程不应“看到”JDBC 驱动程序类,因此在 OSGi 中运行时失败。

关于java - OSGI - 跨包的静态方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com