Hi, The namespaces for Envelope and Header elements are identical and correct: "http://schemas.xmlsoap.org/soap/envelope/". Different are only the prefixes, but from XML perspective the document is correct. Do you have any problem to parse it on other side?
Other question: are there good reasons to set username tokens manually instead reusing CXF WS-Security features: http://cxf.apache.org/docs/ws-security.html ? Regards, Andrei. > -----Original Message----- > From: Nicholas Fechner [mailto:[email protected]] > Sent: Montag, 10. Oktober 2016 15:27 > To: [email protected] > Subject: SOAP header namespace trouble > > Hi, > why, when I do this in a SOAPHandler: > > SOAPEnvelope envelope = smc.getMessage().getSOAPPart().getEnvelope(); > > SOAPHeader header = envelope.getHeader(); if (header == null) { > header = envelope.addHeader(); > } > > Name head = envelope.createName("head", "wsse", "http://handler.com"); > SOAPHeaderElement auth = header.addHeaderElement(head); > > SOAPElement username = auth.addChildElement("UserName"); > username.addTextNode(user); > > SOAPElement token = auth.addChildElement("Token"); > token.addTextNode(this.token); > > do I get this as a result: > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <SOAP-ENV:Header xmlns:SOAP- > ENV="http://schemas.xmlsoap.org/soap/envelope/"> > <wsse:head xmlns:wsse="http://handler.com"> > <UserName>tmcsoap</UserName> > <Token>kxXafFye9lpZmKg798plf8SjDqS5TjCwKSvZsI7exFE=</Token> > </wsse:head> > </SOAP-ENV:Header> > <soap:Body> > ... > </soap:Body> > </soap:Envelope> > > Why does CXF (3.1.x in Wildfly 10) use a second namespace for the header? > > And help or pointers would be appreciated, Nicholas
