Je voudrais appeler le service de savon que j'ai implémenté en Java.Comment puis-je appeler le service de savon en Java?
Toutefois, l'erreur suivante continuera à se produire. 'Le serveur n'a pas reconnu la valeur de l'en-tête HTTP SOAPAction'
Veuillez voir ce qui ne va pas avec mon code.
url test est 'http://example.com/test.asmx?op=tt'
** ce qui est soapaction ?????
import javax.xml.soap.*;
public class SOAPClientSAAJ {
// SAAJ - SOAP Client Testing
public static void main (String args[]) {
String soapEndpointUrl = "http://example.com/test.asmx" ;
String soapAction = "http://example.com/tt" ;
callSoapWebService (soapEndpointUrl , soapAction) ;
}
private static void createSoapEnvelope (SOAPMessage soapMessage) throws SOAPException {
SOAPPart soapPart = soapMessage .getSOAPPart() ;
// SOAP Body
SOAPBody soapBody = envelope .getBody() ;
SOAPElement soapBodyElem1 = soapBody .addChildElement ("element1") ;
soapBodyElem11 .addTextNode ("test") ;
SOAPElement soapBodyElem2 = soapBody .addChildElement ("element2") ;
soapBodyElem12 .addTextNode ("test") ;
}
private static void callSoapWebService (String soapEndpointUrl, String soapAction) {
try {
// Create SOAP Connection
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory . newInstance() ;
SOAPConnection soapConnection = soapConnectionFactory .createConnection() ;
// Send SOAP Message to SOAP Server
SOAPMessage soapResponse = soapConnection .call (createSOAPRequest(soapAction), soapEndpointUrl) ;
// Print the SOAP Response
System .out . println("Response SOAP Message:");
soapResponse .writeTo (System. out);
System .out . println() ;
soapConnection .close() ;
} catch (Exception e) {
System .err . println("\nError occurred while sending SOAP Request to Server!\nMake sure you have the correct endpoint URL and SOAPAction!\n") ;
e .printStackTrace() ;
}
}
private static SOAPMessage createSOAPRequest (String soapAction) throws Exception {
MessageFactory messageFactory = MessageFactory .newInstance() ;
SOAPMessage soapMessage = messageFactory .createMessage() ;
createSoapEnvelope (soapMessage) ;
MimeHeaders headers = soapMessage .getMimeHeaders() ;
headers .addHeader ("SOAPAction", soapAction) ;
soapMessage .saveChanges() ;
/* Print the request message, just for debugging purposes */
System .out . println("Request SOAP Message:");
soapMessage .writeTo (System. out);
System .out . println("\n");
return soapMessage ;
}
}