@Override public Collection<PhaseInterceptor<? extends Message>> getAdditionalInterceptors() { return Arrays.asList( new DisablePayloadCollectingDeactivationInterceptor(), new OutStreamSubstituteInterceptor()); }
public OutStreamSubstituteInterceptor() { super(Phase.PRE_STREAM); addAfter(StaxOutInterceptor.class.getName()); }
private static String getOutboundBodyPayload(Message message) { WrappedOutputStream wrapper = OutStreamSubstituteInterceptor.getStreamWrapper(message); wrapper.deactivate(); return wrapper.getCollectedPayload(); }
@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); } }
/** * 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()); }