2012-07-30 115 views
1

我正在使用JaxWsPortProxyFactoryBean从wsdl创建一个简单的ws客户端。一切都按预期工作,但不幸的是我得到的响应包含unicode字符,这些字符在xml文档中无效。不幸的是,这是第三方网络服务,所有者目前无法更改内容。 因此我越来越喜欢但下列情况除外:如何用Spring的JaxWsPortProxyFactoryBean忽略无效的xml响应

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1563] 
Message: An invalid XML character (Unicode: 0x1a) was found in the element content of the document. 

反正有没有忽略这些错误,接收响应并清除它自己?如果不是,有没有“适当”或“通常”的方式来处理这种情况?

感谢

+0

“我正在获取包含unicode字符,这些字符在xml文档中无效。” - 这完全不正确。 XML可以具有unicode字符。 – 2012-08-06 14:09:52

+0

我可能写错了(对不起我的英文)。我的意思是这个响应包含一些对xml无效的unicode字符。下面提到的Pangea究竟是什么。 – gpol 2012-08-07 05:59:32

回答

1

问题是0X1A不是在valid character set range for XML。可能this solution是你在找什么,即去除无效字符你自己使用某种过滤器/拦截器可以是..

此外,另一个替代的解决方案是用Unicode替换字符来代替它读取this post

+0

这正是我的问题。我不知道在解析和抛出异常之前是否有办法筛选响应。在使用JaxWsPortProxyFactoryBean之前,您可以指点一下如何使用这种拦截器的正确方向吗?谢谢! – gpol 2012-08-07 06:01:18

+0

@gpol我很确定spring支持WS客户端的拦截器(例如验证拦截器http://blog.espenberntsen.net/2010/02/28/spring-ws-client/)。尽管我自己并没有使用它。所以,在SO中再问一个问题,你会得到答案。另外,如果这个问题是答案,那就接受它。 – 2012-08-07 13:36:52