Invalid white space character in text to output (in xml 1.1, could output as a character entity)
private String excuteRealTimeExchange(PadisPackageType reqPackage) {
String result;
try {
result
= rte.execute(JaxbUtils.convertPadisObjectToXml(reqPackage));
}
catch (Exception e) {
throw
new PadisException(
".....");
}
return result;
}
以前一直覺得是網絡緣由,致使webserivce發不出去。今天調試,才發現是由於報文中有控制字符,因此才拋出錯誤。
XML支持的字符是有限的,詳細請看:
特殊字符如控制字符是不被支持的
在發送XML的時候,把不合法的控制字符都去掉。
方法以下:
public
static String trimAllISOControl(String str) {
if (
!hasLength(str)) {
return str;
}
StringBuilder sb
=
new StringBuilder(str);
int index
=
0;
while (sb.length()
> index) {
if (
Character.isISOControl(sb.charAt(index))) {
sb.deleteCharAt(index);
}
else {
index
++;
}
}
return sb.toString();
}