CXF出现编码GBK的不可映射字符问题解决
CXF创建客户端出现编码 GBK 的不可映射字符问题解决
1问题描述:
在⽤cxf创建client客户端的时候,在main⽅法启动,创建客户端是正常的,但是在tomcat中启动的时候,⽤action去访问,执⾏以下第三⾏代码会出现 警告:编码 GBK 的不可映射字符的 问题:
1. String wsdlurl = "" + "19
2.168.0.199:8081" + "/services/hello?wsdl";
2.JaxWsDynamicClientFactory clientFactory = wInstance();
3. Client client = ateClient(wsdlurl);
2.控制台出现问题
D:\work\apache-tomcat-7.0.69\temp\dpoint.dynamic.JaxWsDynamicClientFactory@506d2be2-150942
1150671-src\com\elgin\cxf\service\User.java:56: 错误: 编码GBK的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
D:\work\apache-tomcat-7.0.69\temp\dpoint.dynamic.JaxWsDynamicClientFactory@506d2be2-1509421150671-src\com\elgin\cxf\service\User.java:68: 错误: 编码GBK的不可映射字符
url编码和utf8区别* 璁剧疆name灞炴?鐨勫?銆?
^
D:\work\apache-tomcat-7.0.69\temp\dpoint.dynamic.JaxWsDynamicClientFactory@506d2be2-1509421150671-src\com\elgin\cxf\service\User.java:68: 错误: 编码GBK的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
D:\work\apache-tomcat-7.0.69\temp\dpoint.dynamic.JaxWsDynamicClientFactory@506d2be2-1509421150671-src\com\elgin\cxf\service\User.java:68: 错误: 编码GBK的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
3.解决⽅案
在百度搜索解决⽅案,来去都没有解决⽅案,有个更改eclipse编码的问题的⽅法还是不能成功,还是⾃⼰动⼿跟踪源码发
现,JaxWsDynamicClientFactory在编译的时候,是加载的jdk的默认的编码⽅式,是这⾥出现的问题,只要在源码中指定编码utf-8即可解决此问题。源码解决代码:
protected boolean compileJavaSrc(String classPath, List<File> srcList, String dest) {
fmon.util.Compiler javaCompiler
= new fmon.util.Compiler();
javaCompiler.setClassPath(classPath);
javaCompiler.setOutputDir(dest);
javaCompiler.setEncoding("UTF-8");//增加的代码
// System.out.println("your bianma  is  run 1.7---");
if (Property("java.version").startsWith("9")) {
javaCompiler.setTarget("9");
} else {
javaCompiler.setTarget("1.7");
}
return javaCompilerpileFiles(srcList);
}
4.说明
5.资源下载

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。