Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

签名错误时候返回的xml解析错误 #4

Closed
avastxa opened this issue Apr 13, 2016 · 1 comment
Closed

签名错误时候返回的xml解析错误 #4

avastxa opened this issue Apr 13, 2016 · 1 comment

Comments

@avastxa
Copy link

avastxa commented Apr 13, 2016

返回的xml为:
<return_code></return_code>
<return_msg></return_msg>

估计是因为中文引起的。

stack:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:691) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:372) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1743) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1256) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanCDATASection(XMLDocumentFragmentScannerImpl.java:1654) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3020) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) ~[na:1.8.0_31]
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348) ~[na:1.8.0_31]
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) ~[na:1.8.0_31]
at me.hao0.common.xml.XmlReaders.create(XmlReaders.java:43) ~[common-1.1.0.jar:na]
at me.hao0.common.xml.XmlReaders.create(XmlReaders.java:37) ~[common-1.1.0.jar:na]
at me.hao0.wepay.core.Component.readResp(Component.java:62) ~[wepay-core-1.1.2.jar:na]
at me.hao0.wepay.core.Component.toMap(Component.java:52) ~[wepay-core-1.1.2.jar:na]
at me.hao0.wepay.core.Component.doPost(Component.java:31) ~[wepay-core-1.1.2.jar:na]
at me.hao0.wepay.core.Pays.doPay(Pays.java:128) ~[wepay-core-1.1.2.jar:na]
at me.hao0.wepay.core.Pays.doJsPay(Pays.java:102) ~[wepay-core-1.1.2.jar:na]
at me.hao0.wepay.core.Pays.jsPay(Pays.java:50) ~[wepay-core-1.1.2.jar:na]

@avastxa
Copy link
Author

avastxa commented Apr 13, 2016

已解决。

jvm默认字符编码导致的。建议将me.hao0.wepay.core.Component 第65行,改为
XmlReaders readers = XmlReaders.create(new ByteArrayInputStream(xml.getBytes(Charset.forName("UTF-8"))));

@avastxa avastxa closed this as completed Apr 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant