在OSGi下使用SnakeYaml?

oco*_*or0 3 java yaml osgi snakeyaml

SnakeYaml是否在OSGi框架内工作?我已经修改了MANIFEST等,以便正确部署,但是尝试将文档加载到JavaBean对象结构中时失败了"Class not found"异常.

谢谢.

bas*_*ero 8

有时它就像添加清单标题一样简单,以使jar在OSGi沙箱中发挥出色.有时罐子/库在OSGi的上下文中做"顽皮"的事情.由于OSGi使用类加载器的方式,黄金法则是避免使用"Class.forName()",否则在单个类加载器环境中完全有效.我将源代码下拉到SnakeYaml,它们是基于bean的加载器,它使用了Class.forName.

好消息是,似乎有一个构造函数CustomClassLoaderConstructor,让您使用自己的类加载器,并在创建核心Yaml解析器对象时使用它.关键是获得正确的类加载器.您将需要使用您正在使用Yaml的bundle的类加载器,但是您需要确保将要创建的任何CLASS导入到该bundle中.导入将确保所需的所有对象都在OSGi创建的类加载器树中.

查看此问题是为了创建基于bundle的类加载器.