Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从SOAP消息中删除空标头?_Java_Soap_Webservice Client_Spring Ws_Soapheader - Fatal编程技术网

Java 如何从SOAP消息中删除空标头?

Java 如何从SOAP消息中删除空标头?,java,soap,webservice-client,spring-ws,soapheader,Java,Soap,Webservice Client,Spring Ws,Soapheader,我使用SpringWS来消费Webservice,如果SOAP信封有空的头元素,它将与之相比较。我发现默认的SOAPMessage实现增加了一个 我怎样才能删除它 提前感谢: 下一行是一个空的SOAP头。您可以通过调用 getSOAPHeader调用后的header.detachNode 下面是普通SAAJ中的解决方案: MessageFactory messageFactory = MessageFactory.newInstance("SOAP 1.2 Protocol");

我使用SpringWS来消费Webservice,如果SOAP信封有空的头元素,它将与之相比较。我发现默认的SOAPMessage实现增加了一个

我怎样才能删除它

提前感谢

下一行是一个空的SOAP头。您可以通过调用 getSOAPHeader调用后的header.detachNode

下面是普通SAAJ中的解决方案:

        MessageFactory messageFactory = MessageFactory.newInstance("SOAP 1.2 Protocol");
        SOAPMessage message = messageFactory.createMessage();
        message.getSOAPHeader().detachNode(); // suppress empty header
下面是使用spring ws的解决方案,它基于:

public void marshalWithSoapActionHeader(MyObject o) {

    webServiceTemplate.marshalSendAndReceive(o, new WebServiceMessageCallback() {

        public void doWithMessage(WebServiceMessage message) {
            SaajSoapMessage saajSoapMessage = (SaajSoapMessage) message;
            SOAPMessage soapMessage = saajSoapMessage.getSaajMessage();
            SOAPPart soapPart = soapMessage.getSOAPPart();
            SOAPEnvelope envelope = soapPart.getEnvelope();
            SOAPHeader header = soapMessage.getSOAPHeader(); 
            header.detachNode();
        }
    });
}