java - Osgi eclipse : how to export package from a fragment bundle and make them visible to an external bundle?

标签 java eclipse osgi-fragment

启动情况(无任何错误):

  • 我有三个不同的包:bunbdle A(称为 org.apache.xmlbeans)、bundle B 和 bundle C
  • bundle B import 一些从bundle A导出的包
  • bundle B 导出一些包(例如包 com.prova.xsd.config)
  • bundle C 导入 bundle B 导出的包(例如包 com.prova.xsd.config)

现在我使包 B 成为包 A 的一个片段(片段主机)添加指令 Fragment-Host:bundle B 的 MANIFEST 中的 org.apache.xmlbeans

此更改后,所有包(A、B、C)的 MANIFEST.MF 中没有错误,但在包 C 的类 .java 中出现编译错误: “导入 com.prova.xsd.config 无法解析” 与文件 .java 头部的导入相关联。

有什么问题?我该如何解决?

非常感谢,

安德里亚

最佳答案

您需要在主机插件 A 的 list 中添加“Eclipse-ExtensibleAPI: true”。

来自 Eclipse Help: OSGi Manifest Bundle :

Eclipse-ExtensibleAPI header

Eclipse-ExtensibleAPI 用于指定主机包是否允许片段包 向主机添加额外的 API。如果主机包想要允许,则应使用此 header 片段以向主机的 API 添加其他包。如果这个标题不是 指定则使用默认值“false”。请注意,此 header 仅由工具使用 (PDE) 为构建构建适当的类路径。 运行时不使用此 header 在运行时,一个片段总是被允许添加额外的包、类和 资源到主机的API。 Eclipse-ExtensibleAPI header 必须使用以下内容 句法:

Eclipse-ExtensibleAPI ::= ( 'true' | 'false' )

以下是 Eclipse-ExtensibleAPI header 的示例:

Eclipse-ExtensibleAPI: true

关于java - Osgi eclipse : how to export package from a fragment bundle and make them visible to an external bundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23683708/

相关文章:

osgi - 片段对其他片段的依赖

java - 向消费者提供队列中的消息,延迟 :Weblogic

java - HttpServletResponse.sendError() 不重定向到错误页面

java - java中如何计算当日结束时的库存量

java - 计算字符串中回文数的方法

eclipse - Tomcat 未在 Eclipse 中启动 - 没有超时问题 - PFB 日志

java - Maven 无法解析 target/generated-sources/javacc 文件夹中生成的类的依赖关系

java - Eclipse中自动生成串口版UID

osgi - 来自片段的约束与宿主冲突

java - eclipse4 RCP 片段 "Unable to load class from bundle"