通过axis1生成客户端代码,调用web services接口出错:Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.
参阅了网上一些帖子, 说是soap报文中含中文,我的解决方法时,修改客户端字符集设置,上述错误解决
客户端字符集修改方法:
1, 配置client-config.wsdd, 复制一份org/apache/axis/client/client-config.wsdd到classpath(即src根目录)下,然后修改
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<parameter name="axis.xmlEncoding" value="GBK"></parameter>
</globalConfiguration>
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
</deployment>
增加" <parameter name="axis.xmlEncoding" value="GBK"></parameter>" 属性即可
参见:http://nakupanda.iteye.com/blog/875165