1. 改变jvm的默辩档磨认字符编码。
2. 修携斗改CxfInboundMessageProcessor类的源代码。
第一种方案通过修改服务器的启动参数,蠢孙追加一段“-Dfile.encoding=UTF-8”,就可以改变服务器的java运行环境。
此时启动服务器时会发现,虽然WSDL中文不再出现乱码了,但是服务器控制台显示的中文 却全都成了乱码 。wsdl 是否出现乱码依赖于运行服务器的默认字符集,对于OECP平台来说是不可控的。OECP平台使用什么样的字符编码应该依赖于应用自己的配置。
修改mule 的源代码,CxfInboundMessageProcessor这个类,在升级的过程中没有改动,不然就要反编译来获取源码了。
将201行的msg = out.toString()修改为如下代码:
java 代码
String enc = event.getMuleContext().getConfiguration().getDefaultEncoding() msg = out.toString(enc)
从mule 的配置中得到配置的编码格式,并在将Stream转换为String的时候指定使用此编码格式.至此问题解决了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)