【发布时间】:2014-11-20 13:04:03
【问题描述】:
在 osgi 中遇到无法将 A 类转换为 A 类的问题。重点是此类 A 没有在任何其他包中以及它的创建位置中导出。在导出包的 pom 中提到了“!A”,所以 A 没有被导出。我们仍然得到这个问题。重新安装捆绑包虽然有效。无法重现问题,然后突然又回来了。任何想法。
该类是一个实体类并且是内部的——不在任何其他项目中
在 maven-bundle-plugin 我们有
<Private-Package>
com.xxx.yyy.entity.*
</Private-Package>
<Export-Package>
!com.xxx.yyy.entity.*
</Export-Package>
【问题讨论】:
-
我们使用 java 和 camel 并在 jboss-fuse 上运行。
-
只有类对象为==时才属于同一个类。也就是说,object1.getClass() == object2.getClass()。如果类是从完全相同的类文件加载的,对 VM 来说并不重要。
-
你能验证出口的清单文件吗?您假设它不是基于 Maven 配置导出的,但实际上不在清单中?
-
已签入清单。它不存在。
-
com.xxx.yyy.entity.* !com.xxx.yyy.entity.* 是以上可以和必要吗?我想如果你提到私人包,那么你不应该提到“!”在同一个包的导出包中。
标签: osgi osgi-bundle jbossfuse