2

JAX-WSでSOAPリクエストプレフィックスを変更する方法。handlemessageのsetprofixメソッドを更新しました

        SOAPMessage msgs = ctx.getMessage();

        SOAPMessage sm = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
         sm.getSOAPPart().getEnvelope().setPrefix("soap");
         sm.getSOAPPart().getEnvelope().removeNamespaceDeclaration("env");
         sm.getSOAPHeader().setPrefix("soap");
         sm.getSOAPBody().setPrefix("soap");*/

しかし、それでも私は同じリクエストを受け取っています

       <?xml version="1.0"?>
       <S:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"

必要だった

      <Soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

助けてください

4

2 に答える 2

3
    final SOAPMessage soapMsg = context.getMessage();
    soapMsg.getSOAPPart().getEnvelope().setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:soap", "http://schemas.xmlsoap.org/soap/envelope/");
    soapMsg.getSOAPPart().getEnvelope().removeAttributeNS("http://schemas.xmlsoap.org/soap/envelope/", "env");
    soapMsg.getSOAPPart().getEnvelope().removeAttribute("xmlns:env");
    soapMsg.getSOAPPart().getEnvelope().setPrefix("soap");
    soapMsg.getSOAPBody().setPrefix("soap");
    soapMsg.getSOAPPart().getEnvelope().getHeader().detachNode();
于 2013-03-18T20:29:50.840 に答える