Wie konvertiere ich einen String in eine SOAPMessage in Java?

Ich frage mich, ob es eine Möglichkeit gibt, einen String in zu konvertierenSOAPMessage?

Lassen Sie mich sagen, ich habe eine Zeichenfolge wie folgt:

String send = "<soap:Envelope xmlns:mrns0=\"http://sdp.SOMETHING.com/mapping/TSO\" xmlns:sdp=\"http://sdp.SOMETHING.com.tr/mapping/generated\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
        + "<soap:Header>"
        + "<sdp:token>"
        + "<sdp:sessionId>" + sessionId + "</sdp:sessionId>"
        + "</sdp:token>"
        + "<sdp:transaction-list>"
        + "<sdp:transaction-id>" + 11 + "</sdp:transaction-id>"
        + "</sdp:transaction-list>"
        + "</soap:Header>"
        + "<soap:Body>"
        + "<sdp:SendSMSInput>"
        + "<sdp:EXPIRY_DATE>" + extime + "</sdp:EXPIRY_DATE>"
        + "<sdp:MESSAGE_CLASS>0</sdp:MESSAGE_CLASS>"
        + "<sdp:S_DATE>" + time + "</sdp:S_DATE>"
        + "<sdp:SHORT_NUMBER>1905</sdp:SHORT_NUMBER>"
        + "<sdp:SRC_MSISDN>" + numSend + "</sdp:SRC_MSISDN>"
        + "<sdp:TO_RECEIVERS>"
        + "<sdp:msisdn>" + numSend + "</sdp:msisdn>"
        + "</sdp:TO_RECEIVERS>"
        + "<sdp:MESSAGE_BODY>"
        + "<sdp:message>Message body here.</sdp:message>"
        + "</sdp:MESSAGE_BODY>"
        + "</sdp:SendSMSInput>"
        + "</soap:Body>"
        + "</soap:Envelope>";


Wenn ich das mache:

    SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
    SOAPConnection connection = sfc.createConnection();
    InputStream is = new ByteArrayInputStream(send.getBytes());
    SOAPMessage request = MessageFactory.newInstance().createMessage(null, is);
    request.removeAllAttachments();

    SOAPPart part = request.getSOAPPart();
    part.detachNode();
    SOAPEnvelope env = part.getEnvelope();
    env.detachNode();
    SOAPBody body = env.getBody();
    body.detachNode();
    SOAPHeader head = env.getHeader();
    head.detachNode();

    request.writeTo(System.out);

    URL endpoint = new URL("http://sdp.somewhere.com.tr/view/LbsOpaqueService.wsdl");
    SOAPMessage response = connection.call(request, endpoint);
    System.out.println(response.getContentDescription());

Alles funktioniert gut. Aber ich verstehe immer nochNULL vom Server. Was könnte der Grund sein? Ich habe <und> geändert, um Zeichen zu entkommen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage