Comment convertir une chaîne en un message SOAPMessage en Java?
Je me demande est-il possible de convertir une chaîne de SOAPMessage?
Permettez-moi de dire que j'ai une chaîne de caractères comme suit:
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>";
Quand je fais cela:
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());
Tout fonctionne bien. Mais j'ai toujours NULL
à partir du serveur. Quelle pourrait être la raison? J'ai changé les < et > pour échapper les caractères.
source d'informationauteur Ali Yucel Akgul | 2012-11-28
Vous devez vous connecter pour publier un commentaire.
Convertir la Chaîne en un flux d'entrée, puis de le lire dans le message SOAP factory.
Vous pouvez voir comment le faire ici.
Cela fonctionne pour moi:
Au lieu de:
La remplacer avec la ligne suivante après l'obtention de la réponse: