目前我们的 cXML Punchout 实现(SAP hybris 标准)不会在响应中打印 Doctype。
终端系统需要它:
Wed Sep 02 00:19:42 PDT 2020 (T12:prealm_1234:global\c1234:PasswordAdapter1:db2wer:C123_UI1)
(application.cxml:ERROR) [ID1234]: CXMLDOMRequester: Unable to parse cXML response with error:
org.xml.sax.SAXParseException: Document root element "cXML", must match DOCTYPE root "null".
我试图做一些研究:
一个请求去de.hybris.platform.b2bpunchoutaddon.controllers.pages.DefaultPunchOutSetUpController.handlePunchOutSetUpRequest()
,它返回一个 CXML 对象。这个对象通过一些映射器和转换器,但它没有添加 Doctype。
然后我发现de.hybris.platform.b2bpunchoutaddon.converter.CXMLJaxb2MessageConverter
。这MessageConverter
会将 Doctype 添加到 xml 标头。但它永远不会运行。
对我来说,弹簧配置看起来是正确的:
<alias name="cXMLJaxb2MessageConverter" alias="jaxbMessageConverter" />
<bean id="cXMLJaxb2MessageConverter" class="de.hybris.platform.b2bpunchoutaddon.converter.CXMLJaxb2MessageConverter"/>
现在我对这个问题感到绝望。你们中有人知道如何解决吗?