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報錯的問題。