public void configure() { InvocationChain bindingChain = endpointReference.getBindingInvocationChain(); // add transport interceptor bindingChain.addInterceptor(Phase.REFERENCE_BINDING_TRANSPORT, new TransportReferenceInterceptor(jmsBinding, jmsResourceFactory, endpointReference) ); // add request wire format bindingChain.addInterceptor(requestWireFormatProvider.getPhase(), requestWireFormatProvider.createInterceptor()); // add response wire format, but only add it if it's different from the request if (!jmsBinding.getRequestWireFormat().equals(jmsBinding.getResponseWireFormat())){ bindingChain.addInterceptor(responseWireFormatProvider.getPhase(), responseWireFormatProvider.createInterceptor()); } // add the header processor that comes after the wire formatter but before the // policy interceptors bindingChain.addInterceptor(Phase.REFERENCE_BINDING_WIREFORMAT, new HeaderReferenceInterceptor(extensions, jmsBinding, jmsResourceFactory, endpointReference) ); }