微信支付時, 命名返回支付成功, 但是成功后卻返回如下的錯誤,
在測試環境都是沒有任何問題, 到客戶現場后, 可能客戶現場使用的4G網絡, 用微信支付時一直報這樣的錯誤
錯誤現象:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字節的 UTF-8 序列的字節 1 無效。 at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:701) at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:567) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1793) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1306) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanCDATASection(XMLDocumentFragmentScanne at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFrag at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImp at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
錯誤截圖:
解決方案:
打開tomcat bin目錄下的 catalina.bat文件, 在
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
添加:
set "JAVA_OPTS=-server -Dfile.encoding=utf-8"
然后重啟tomcat
但是這樣改, 有個弊端, 也就是可能會造成你的控制台亂碼, 那么就要修改你的返回流了,
如果你的HttpClientUtil.class做了返回流的編碼, 上面tomcat配置文件里面的那一行可以去掉(如果導致亂碼的話)