首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OSGi中使用Guice

在OSGi中使用Guice
EN

Stack Overflow用户
提问于 2009-10-30 21:35:19
回答 4查看 3.2K关注 0票数 2

我有一个项目,我正在尝试转换为OSGi。然而,这个项目是使用Guice作为其依赖注入管理器构建的。这是一个由Guice自始至终相互交织的大型项目。Guice在转换过程中给了我很多建议。具体来说,它已经为我提供了一个用于com.google.inject.internal.cglib.reflect.FastClass.的NoClassDefFoundError我已经确保没有任何东西是包私有的,并且我还下载并使用了guice-2.0-customloader.jar。不过,还是无济于事。

走这条路的人有什么建议吗?值得一提的是,我使用peaberry从OSGi环境(针对插件类型的体系结构)获得动态服务,稍后我将在程序中使用这些服务。

非常感谢,史蒂夫

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-02 00:03:16

很难说到底是什么问题,在OSGi中,类加载器问题可能是非常特定的情况,并且很难调试。

如果guice确实是您的应用程序的核心,那么将其作为System Bundle的片段包可能是有意义的。系统包是所有包的类加载器树中的根节点。如果这个包中存在类,那么它们将在任何地方都可以访问。这是我用来成功地将Swing (物质、合金、Jide)包装为OSGi包的技术。它们必须在根级别,因为我的所有包都使用Swing (特别是Swing类加载器)。

您需要检查用于创建片段包并使该片段包成为框架扩展片段的OSGi规范。我只能使用Eclipse的Equinox运行时做到这一点。在我编写大多数支持类的时候,Apache Felix还不支持框架扩展片段。现在可能已经改变了。我对框架(knopplefish,spring-dm)一无所知

票数 4
EN

Stack Overflow用户

发布于 2009-11-12 19:23:20

只需使用Peaberry即可。它提供了在OSGi中使用Guice所需的所有支持。没有必要从头开始重塑一切!

票数 4
EN

Stack Overflow用户

发布于 2009-11-01 23:51:19

我假设你在package-private上的评论与Guice and bridging class loaders上的这个页面有关?

有一个可能与您的问题相关的错误报告/修补程序:http://code.google.com/p/google-guice/issues/detail?id=343

您是否尝试过将Guice和cglib添加到标准类路径并为其执行引导委派?这将证明/反驳您的问题与上面的bug报告中提到的问题是相同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1649841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档