java - 从 osgi 包中导出和导入相同的包

标签 java maven osgi

我在 osgi 包 Bundle1 和另一个类中有一个类 org.foo.Customer org.foo.Subscriber 在同一 osgi 环境中的另一个 osgi 包 Bundle2 中。 Bundle1 导出包 org.foo 。

Bundle1 是否可以import org.fooBundle2Bundle1 的 list 文件中的 export 和 import 指定了同一个包,运行时会不会有冲突?

最佳答案

拆分包为strongly discouraged在 OSGi 中。如果您拥有这些 bundle ,您应该重命名一个或两个包,或者将拆分包合并为一个 bundle 。

Bundle2 可以导入拆分包,但是 Bundle2 的类加载器只能看到 Bundle1 中的类,而看不到 Bundle2 内部的类。

您可以将其中一个 bundle 设为 fragment另一个,其效果是它们将使用相同的类加载器。这只需要更改片段包的 list ,如果您出于某种原因无法加入包或更改包名称,这可能是一个选项。

关于java - 从 osgi 包中导出和导入相同的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326136/

相关文章:

java - 如何调用 Linux shell 并为其设置 PATH?

java - 如何将字节数组中的特定字节转换为整数

java - 什么可以防止 HttpSession 的 id 被盗用?

maven - 使用 ivy 从 Maven 存储库中解析特定范围

java - 运行 JUNIT 测试用例时无法加载 ApplicationContext

java - 使用 Web Start/JNLP 动态加载额外的 jar 文件

maven 解决依赖但在其中找不到包/类

java - Kotlin lateinit 对应java

java - ClassNotFoundException : org. springframework.boot.autoconfigure.security.oauth2.resource.OAuth2ResourceServerConfiguration

java - Elasticsearch 稳定版