javasoapmessage转义,webservice传递特殊字符时的解决⽅
法
webservice传递特殊字符时的解决办法
如何生成webservice客户端webservice soap报⽂是xml格式交互的,其中针对特殊字符传递⽆法解析,导致数据处理失败。
解决办法如下:
1、在发送报⽂之前,针对报⽂进⾏base64转码,转义后避免报⽂中含有特殊字符。
标准base64中是以%开头的,如果存储到数据库中,并进⾏查询sql中,会解析成通配符,这样会报错。
搜索后使⽤改进版base64进⾏转码,可以规避该问题,具体度娘⼀下吧。
此⽅法的缺点是,所有客户端都需要知道解码的⽅式,否则⽆法解析。
2、在xml中,使⽤cdata标记特殊字符,这种⽅式经分析后不太好。
⽬前的缺点有2,⼀是需要针对每个特殊字符都转换⼀下,⾸先是本⼈不知道应该在什么使⽤添加,是在设置属性值的时候,还是最后⽣成报⽂的时候;
⽽且使⽤这个的话数据中不能含有[[ ]]等字符。这样判断真⿇烦,如果有知道这问题如何解决,请您指教。我也只是⽹络学习的。
3、还有研究什么对象的,没太研究,请⼤家讨论⼀下是什么意思:
通过Xml Document对象得到XML字符串返回给客户端,不能直接把XmlDocument返回给客户端,因为Java中的Xml Document对象,别的语⾔是⽆法正确解释的,我们只能返回XML 字符串:
public String getAllNewSpace() {
Document document = ateDocument();
Element root=document.addElement( "root ");
…………………………
if (null != dataset) {
while (()) {
Element user=root.addElement( "User ");
Element userName=user.addElement( "UserName ");
userName.String(1));
Element userId=user.addElement( "UserId ");
userId.setText (String(2));
}
}
return document.asXML();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论