1
我正在使用org.springframework.oxm.jaxb.Jaxb2Marshaller解開我的請求xml。解組失敗,因爲即使編碼的序幕設置爲Jaxb2Marshaller無法解析存在'&'
請求「&」(符號)的存在requestXML -
<?xml version="1.0" encoding="utf-8"?><createaccountrequest><username>Test&jsongg</username><userpassword>12345</userpassword></createaccountrequest>
的例外,我得到的是如下
500 Internal Server Error org.springframework.http.converter.HttpMessageNotReadableException: Could not unmarshal to [class com.marketplace.system.customer.service.component.request.vo.AccountRequestVO]: null; nested exception is javax.xml.bind.UnmarshalException - with linked exception: [org.xml.sax.SAXParseException: The reference to entity "jsongg1h61" must end with the ';' delimiter.] at org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.readFromSource(Jaxb2RootElementHttpMessageConverter.java:82) ~[spring-web-3.1.0.RELEASE.jar:3.1.0.RELEASE] at org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter.readInternal(AbstractXmlHttpMessageConverter.java:61) ~[spring-web-3.1.0.RELEASE.jar:3.1.0.RELEASE] at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:153) ~[spring-web-3.1.0.RELEASE.jar:3.1.0.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:120) ~[spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE]
任何指針將是一個很大的幫助。
在此先感謝
感謝您的回覆。 「&」是UTF-8編碼下的有效字符。 我已經使用「&」,它的工作原理,但我想另一種方式使用「&」,以便客戶端不必使用「&」。 例如Jaxb2Marshaller屬性(如果有的話)。 – Soutrick
@Soutrick問題不在於字符編碼,而是它包含未轉義的&符號_isn't XML_的字符串,以及XML分析器_must_在嘗試解析此類數據時引發錯誤。我已經用一些替代的可能性編輯了我的答案。 –
謝謝伊恩。 現在它真的很有幫助。 – Soutrick