public OutPayloadExtractorInterceptor() { super(Phase.PRE_PROTOCOL_ENDING); addAfter(SAAJOutInterceptor.SAAJOutEndingInterceptor.class.getName()); }
/** * Helper method for installing of payload-collecting SOAP interceptors * for the given Client. */ static protected void installPayloadInterceptors(Client client) { client.getOutInterceptors().add(new OutStreamSubstituteInterceptor()); client.getOutInterceptors().add(new OutPayloadExtractorInterceptor()); }
@Override public void handleMessage(Message message) { if (isGET(message)) { return; } WrappedOutputStream wrapper = OutStreamSubstituteInterceptor.getStreamWrapper(message); if (! Boolean.FALSE.equals(message.getContextualProperty(PAYLOAD_COLLECTING_DEACTIVATION_ENABLED))) { wrapper.deactivate(); } String soapEnvelope = wrapper.getCollectedPayload(); String payload = SoapUtils.extractSoapBody(soapEnvelope); StringPayloadHolder payloadHolder = new StringPayloadHolder(); payloadHolder.put(SOAP_BODY, payload); message.setContent(StringPayloadHolder.class, payloadHolder); } }