java – 在OSGi下使用SnakeYaml?
作者:互联网
SnakeYaml是否在OSGi框架内工作?我修改了MANIFEST&这样它可以正确部署,但是尝试将文档加载到JavaBean对象结构中会失败并出现“未找到类”异常.
谢谢.
解决方法:
有时它就像添加清单标题一样简单,以使jar在OSGi沙箱中发挥出色.有时罐子/库在OSGi的上下文中做“顽皮”的事情.由于OSGi使用类加载器的方式,黄金法则是避免使用“Class.forName()”,否则在单个类加载器环境中完全有效.我将源代码下拉到SnakeYaml,它们是基于bean的加载器,它使用了Class.forName.
好消息是,似乎有一个构造函数CustomClassLoaderConstructor,让您使用自己的类加载器,并在创建核心Yaml解析器对象时使用它.关键是获得正确的类加载器.您将需要使用您正在使用Yaml的bundle的类加载器,但是您需要确保将要创建的任何CLASS导入到该bundle中.导入将确保所需的所有对象都在OSGi创建的类加载器树中.
See this question用于创建基于bundle的类加载器.
标签:snakeyaml,java,yaml,osgi 来源: https://codeday.me/bug/20190726/1544123.html