извлечение полного XML-конверта из MessageContext - PullRequest
2 голосов
/ 18 июля 2011

У меня есть такой перехватчик:

public class WebServiceInterceptor extends EndpointInterceptorAdapter {

@Inject
private Jaxb2Marshaller myJaxb2Marshaller;

@Inject
private WebServiceHistoryDao webServiceHistoryDao;

@Override
public boolean handleRequest(MessageContext messageContext, Object endpoint)
        throws Exception {

    Source payloadSource = messageContext.getRequest().getPayloadSource();
    Object unmarshaled = myJaxb2Marshaller.unmarshal(payloadSource);

    //EXTRACT XML HERE
    //is there a better way than this:
    String extractedXml = myJaxb2Marshaller.marshal(unmarshaled);

    return true;
}

}

Как мне извлечь весь XML-конверт (для регистрации - для записи в БД)

1 Ответ

1 голос
/ 19 июля 2011

Вам не нужно писать один, в API есть существующий - SoapEnvelopeLoggingInterceptor. См. Javadoc .

SOAP-специфичный EndpointInterceptor, который регистрирует полный конверт запроса и ответа SoapMessage сообщений. По умолчанию сообщения о запросах, ответах и ​​ошибках регистрируются, но это поведение можно изменить с помощью свойств logRequest, logResponse, logFault.

Если вам нужно только увидеть полезную нагрузку, а не весь конверт SOAP, тогда есть PayloadLoggingInterceptor.

...