как уловить soap подробности неисправности в Camel-Spring-WS - PullRequest
0 голосов
/ 02 мая 2020

Я использую верблюжий каркас 2.22.0 и camel-spring-ws в моем микросервисе весенней загрузки, чтобы преобразовать xml в soap во время выполнения и сделать запрос к бэкэнду и одновременно получить ответ soap и кавер-версии он возвращается к XML перед отправкой ответа обратно в вызывающую систему.

Сценарий успеха ios все работает нормально, но при ошибке soap регистрируется только строка soap, и он не видит ни одной soap ответ заполнен. soap ответ не перехватывается и не возвращается к вызывающей системе, кроме http-кода состояния 500.

Ниже показано, что серверная система отправляет как ошибка soap. Я не вижу ничего в теле верблюжьего человека, в котором есть ошибка soap. Мне нужно захватить ответный тэг xml в подробном разделе и отправить обратно в вызывающую систему.

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <soap:Fault>
          <faultcode>soap:Server</faultcode>
          <faultstring>abc-complex-type.x.x: Value '0' of attribute 'schemaVersion' of element 'ABCSubmission:ABCSubmission' is not valid with respect to the corresponding attribute use. Attribute 'schemaVersion' has a fixed value of '1'.</faultstring>
          <detail>
            <ns2:ABCSubmissionException xmlns:ns2="java:com.webservice.ejb" xmlns="ABCintegration.xdt">
              <ns2:ABCIntegrationError schemaVersionMajor="1" schemaVersionMinor="0">
                <ErrorName>ABCMessageSyntaxInvalid</ErrorName>
                <ErrorDescription>cvc-complex-type.3.1: Value '0' of attribute 'schemaVersion' of element 'ABCSubmission:ABCSubmission' is not valid with respect to the corresponding attribute use. Attribute 'schemaVersion' has a fixed value of '1'.</ErrorDescription>
              </ns2:ABCIntegrationError>
            </ns2:ABCSubmissionException>
          </detail>
        </soap:Fault>
      </soap:Body>
    </soap:Envelope>
...