有时它就像添加清单标题一样简单,以使jar在OSGi沙箱中发挥出色.有时罐子/库在OSGi的上下文中做"顽皮"的事情.由于OSGi使用类加载器的方式,黄金法则是避免使用"Class.forName()",否则在单个类加载器环境中完全有效.我将源代码下拉到SnakeYaml,它们是基于bean的加载器,它使用了Class.forName.
好消息是,似乎有一个构造函数CustomClassLoaderConstructor,让您使用自己的类加载器,并在创建核心Yaml解析器对象时使用它.关键是获得正确的类加载器.您将需要使用您正在使用Yaml的bundle的类加载器,但是您需要确保将要创建的任何CLASS导入到该bundle中.导入将确保所需的所有对象都在OSGi创建的类加载器树中.
查看此问题是为了创建基于bundle的类加载器.
| 归档时间: |
|
| 查看次数: |
1244 次 |
| 最近记录: |