A. JaxWsDynamicClientFactory报错:编码GBK的不可映射字符
报错信息:JaxWsDynamicClientFactory报错:编码GBK的不可映射字符。
报错原因:在使用CXF动态客户端的Windows系统中,当调用wsdl后可能会遇到错误。原因是项目maven配置使用UTF-8编码,而生成的java文件也使用UTF-8编码。然而,在使用javac进行编译时,会采用系统的默认编码,即中文Windows系统所使用的GBK编码。因此,实际上等同于执行了javac -encoding gbk *.java,从而导致乱码问题的发生,特别是对于动态编译时不兼容的中文字符。
解决办法:为了解决这一问题,可以重写JaxWsDynamicClientFactory父类的compileJavaSrc方法。通过这种方式,自定义的编译过程能够正确处理GBK编码的文件,避免乱码的出现,确保动态编译过程顺利进行,从而有效解决JaxWsDynamicClientFactory报错的问题。