wie zu generieren der soap-Anforderung und Antwort in java-Programmierung
kann mir jemand helfen, entwickeln Sie ein java-Programm, das interagieren mit dem webservice.
Habe ich eine einfache webservice in netbeans. es erzeugt die wsdl Datei und ich nehme mir die url aus.
Mithilfe der wsdl-Datei, erstellt mit netbeans, ich habe für das senden von soap-Anforderung und Antwort in einem java-Programm.
Habe ich das folgende Stück coding, aber ich habe keine Idee, wie das umzusetzen, für meine Anforderung
import javax.xml.soap.*;
public class SOAPClientSAAJ2 {
public static void main(String args[]) throws Exception {
//Create SOAP Connection
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
//Send SOAP Message to SOAP Server
String url = "http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx";
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url);
//print SOAP Response
System.out.print("Response SOAP Message:");
soapResponse.writeTo(System.out);
soapConnection.close();
}
private static SOAPMessage createSOAPRequest() throws Exception {
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
String serverURI = "http://ws.cdyne.com/";
//SOAP Envelope
SOAPEnvelope envelope = soapPart.getEnvelope();
envelope.addNamespaceDeclaration("example", serverURI);
/*
Constructed SOAP Request Message:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:example="http://ws.cdyne.com/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<example:VerifyEmail>
<example:email>[email protected]</example:email>
<example:LicenseKey>123</example:LicenseKey>
</example:VerifyEmail>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*/
//SOAP Body
SOAPBody soapBody = envelope.getBody();
SOAPElement soapBodyElem = soapBody.addChildElement("VerifyEmail", "example");
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("email", "example");
soapBodyElem1.addTextNode("[email protected]");
SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("LicenseKey", "example");
soapBodyElem2.addTextNode("123");
MimeHeaders headers = soapMessage.getMimeHeaders();
headers.addHeader("SOAPAction", serverURI + "VerifyEmail");
soapMessage.saveChanges();
/* Print the request message */
System.out.print("Request SOAP Message:");
soapMessage.writeTo(System.out);
System.out.println();
return soapMessage;
}
}
InformationsquelleAutor itsme | 2014-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Empfehle ich die Verwendung von JAX-WS statt Handarbeit Ihre SOAP-Nachricht. Mit JAX-WS generiert man den code zum erstellen der SOAP/XML-und zum senden/empfangen der Nachricht/Antwort. Alle Sie sind Links zu tun ist, setzen Sie die Werte für die Inhalte, die Sie brauchen, um passieren. In diesem Fall wäre die Schaffung einer VerifyEmail-Objekts, indem dessen zwei Parametern und aufrufen der senden-Methode der generierten web-service-client:
Alle Klassen erwähnt, die hier generiert werden, die für Sie von JAXB, die von JAX-WS. Finden Sie weitere ausführliche info hier.
Ich sehe keine problem damit. Wenn an irgendeinem Punkt Sie brauchen die XML-Darstellung einer Nachricht, die Sie verwenden können, eine JAXB Marshaller zum serialisieren der Nachricht in XML.
Wahr. Es erwies sich als einfacher, jedoch nur einen socket öffnen, um den Endpunkt legen Sie den gewünschten HTTP-header und stream-header und SOAP-Umschlag.
InformationsquelleAutor Rudi Angela