webservice调用服务,服务数据调用失败

luoqiaowen 2013-06-01 09:16:28
使用webservice,服务端向客户端的浏览器发送数据时,由于写入的数据与soap协议有冲突,导致报了xml文件有误,但是debug查看数据,数据也很正常,这种情况怎么解决呢
...全文
832 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoqiaowen 2014-06-06
  • 打赏
  • 举报
回复
xml中插入了特殊字符
luoqiaowen 2013-06-04
  • 打赏
  • 举报
回复
ABCD_0000 说的对,可惜说得我没在找到答案之前没注意看回贴,不然可以少花一个小时了
神探狄仁杰 2013-06-01
  • 打赏
  • 举报
回复
这个不是协议冲突,是你的XML文档中存在一些不可见的非法字符所致。 类似bom之类的。 查检下你的编码吧。 可参考如下的解决办法:

public static string CleanInvalidXmlChars(string text) 
{ 
    // From xml spec valid chars: 
    // #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]     
    // any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. 
    string re = @"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-u10FFFF]"; 
    return Regex.Replace(text, re, ""); 
}
luoqiaowen 2013-06-01
  • 打赏
  • 举报
回复
org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1f) was found in the element con
tent of the document.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)

at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
kittaaron 2013-06-01
  • 打赏
  • 举报
回复
应该把异常贴出来看,SOAP本身是基于XML的,如果是包含的字符与SOAP本身的协议关键字有冲突或者是其它的特殊字符,可以考虑用XML的CDATA把那部分字符包装起来,XML对CDATA段里的数据全部按正常字符处理
成长中的菜鸟 2013-06-01
  • 打赏
  • 举报
回复
这个我也想知道

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧