Setting a custom HTTP header dynamically with Spring-WS client

后端 未结 7 576
我在风中等你
我在风中等你 2020-12-24 05:53

How do you set a custom HTTP header (not SOAP header) dynamically on the client side when using Spring-WS?

7条回答
  •  温柔的废话
    2020-12-24 06:26

    The following fragment has been tested with Spring 4.0. It appends a WebServiceMessageCallback to a org.springframework.ws.client.core.WebServiceTemplate

    final String DYNAMICVALUE = "myDynamo";
    
    WebServiceMessageCallback wsCallback = new WebServiceMessageCallback() {           
           public void doWithMessage(WebServiceMessage message) {
                try {
                            SoapMessage soapMessage = (SoapMessage)message;
                            SoapHeader header = soapMessage.getSoapHeader();
                            header.addAttribute(new QName("myHeaderElement"), DYNAMICVALUE);                        
                } catch (Exception e) {
                            e.printStackTrace();
                }
           }
    };
    
    JAXBElement response = (JAXBElement)
            wsTemplate.marshalSendAndReceive(MyWsOP, wsCallback);
    

提交回复
热议问题