我正在开发一个处理 SOAP 响应(XML 格式)的 Web 服务,我需要:
这就是我想要实现的目标: 在 Camel 中,转换看起来像这样:
<convertBodyTo type="java.lang.String"/>
<choice>
<when>
<simple>${body} contains 'is:folio'</simple>
<setBody>
<simple>${body.replaceAll("is:folio", "is:ApplicantDataFolio")}</simple>
</setBody>
</when>
<otherwise>
<setBody>
<simple>${body.replaceFirst("folio", "is:ApplicantDataFolio xmlns:is='urn:digimarc.com:imaging'")}</simple>
</setBody>
<setBody>
<simple>${body.replaceAll("folio", "is:ApplicantDataFolio")}</simple>
</setBody>
</otherwise>
</choice>
<setBody>
<xpath>//*[local-name()='ApplicantDataFolio']</xpath>
</setBody>
现在,当我尝试发送有效负载时,我得到了解组错误:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: unexpected element (uri:"urn:digimarc.com:imaging", local:"folio"). Expected elements are <{urn:l1id.com:ImageServer}folio>,<{urn:l1id.com:ImageServer}replaceDirective> </faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
我的目标: 我需要在不使用 Apache Camel 的情况下复制此转换逻辑,而是在非 Camel Web 服务上下文中使用纯 Java。
您能否准确地向我们发送您想要发送的有效负载?我的意思是请求的正文。然后,我们应该尝试使用纯 java 构建正文内容。