我已将ServiceMix升级到Fuse ESB 4.4编译。然而,我得到了日志系统的错误,我无法找到如何处理。
错误消息是:
Warning: encoding "UTF-8" not supported, using UTF-8
不使用编码UTF-8。文件以Windows-1250编码进行编码(该组中的字符已正确转换,其他字符当然不可用)。
我在StackOverflow上找到discussion about similar problem,其中发现了Xerces解析器的问题,但是没有线索,如何在这种特殊情况下解决它。有没有人成功处理过它?
答案 0 :(得分:8)
问题是某些东西试图访问UTF-8字符集(可能是通过Charset.forName(“UTF-8”)),它试图在包sun.nio.cs.UTF_8中实例化一个类。
虽然这将存在于没有类加载器约束的JVM的运行时中,但在OSGi运行时中,代码将失败。
解决方案是使用以下内容修改生成此错误消息的包:
Import-Package:...,sun.nio.cs; resolution:= optional
这意味着如果它试图在该包中实例化一个类,它应该能够找到它 - 但是,如果它不存在(比如说,因为你使用的是不同的运行时),那么它仍然可以工作。
请注意,这意味着System.bundle正在导出sun.nio.cs包,您可以通过生成片段(请参阅http://wiki.osgi.org/wiki/Fragment)或让系统包导出sun.nio.cs来执行此操作。包含org.osgi.framework.system.packages属性。
无论哪种方式,它听起来像是日志包应该修复的东西,而不是你需要修复的东西 - 你有没有报告上游的bug?