1
我正在NetBeans中開發一個Java客戶端來使用某些合作伙伴的業務.net服務。一項所述的幅材的方法返回禁用字符作爲它的響應參數部分,如下所示:JAX-WS如何攔截HTTP字符串在被解組之前被竊取
<a:numeroDocumento>5016907031</a:numeroDocumento>
<a:observaciones>Rt 3!!a EMPRESA: CIRCULANTE S.A. 
的JAXB解組引發錯誤的字符存在:
mar 30, 2015 2:11:10 PM com.sun.xml.ws.security.message.stream.LazyStreamBasedMessage readMessage
GRAVE: WSSMSG0001: se ha producido un error al almacenar en el buffer el mensaje SOAP entrante. (error produced while trying to buffer the incoming SOAP message)
com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x1b
at [row,col {unknown-source}]: [1,891]
at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
在技術支持Web服務提供商說他們不能改變這個輸出,儘管我告訴他們這些XML標準沒有編譯,指示我改變這些字符,如C#代碼所示:
string tirillaRecargaPromo = " R\a t 3 ! ! a EMPRESA: EFECTIVO LTDA a NIT.: a *some parts deleted as not disclosable* a a a Aplica condiciones particulares con el a cliente beneficiario. a Conserve este recibo, es el unico a soporte valido para atender cualquier a reclamacion. a Con la solicitud y aceptacion de mi a parte, de la prestacion de este a servicio, entiendase que manifiesto a verbalmente mi autorizacion para el atratamiento de los datos personales que avoluntariamente he entregado a Efectivo a Ltda. Estos datos puede ser utilizados a unica y exclusivamente para la a prestacion del servicio convenido. a Linea de servicio al cliente: (1) a 6510101 a [email protected] a www.efecty.com.co a ";
tirillaRecargaPromo = tirillaRecargaPromo.Substring(16);
tirillaRecargaPromo = tirillaRecargaPromo.Replace(" a", Convert.ToString((char)27) + Convert.ToString((char)97) + Convert.ToString((char)0) + Convert.ToString((char)10));
所以我只剩下試圖將此代碼移植到Java,並找到一種方法來攔截HTTP響應,然後再處理它。我已經嘗試過在兩天內到處搜索,大多數類似問題的答案都告訴使用Handler和HandlerChain,但是同樣的問題發生在基本XML處理在MessageContext發送到處理程序之前完成。我怎樣才能在METRO2的較低級別替換這些字符?
任何提示理解
JAX-WS是一個用於Web服務的標準API,您使用CXF的實現是什麼?地鐵項目? – Namphibian 2015-03-31 07:43:27
對不起,忘記提及:我使用metro 2,因爲我需要與.net兼容,這是服務器的語言 – Sajhu 2015-03-31 14:23:28
它是metro2 @Namphibian – Sajhu 2015-04-01 15:29:31