2012-07-30 30 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