64 lines
2.4 KiB
Java
64 lines
2.4 KiB
Java
Saaj soap client
|
|
|
|
|
|
|
|
package com.ack.webservices.saaj;
|
|
|
|
import javax.xml.messaging.URLEndpoint;
|
|
import javax.xml.soap.*;
|
|
|
|
|
|
public class SaajSoapClient {
|
|
public static void main( String[] args ) throws Exception {
|
|
// set up the factories and create a SOAP factory
|
|
SOAPConnection soapConnection = SOAPConnectionFactory.newInstance().createConnection();
|
|
SOAPFactory soapFactory = SOAPFactory.newInstance();
|
|
MessageFactory messageFactory = MessageFactory.newInstance();
|
|
|
|
// Create a message from the message factory.
|
|
SOAPMessage soapMessage = messageFactory.createMessage();
|
|
|
|
// creat a SOAP part have populate the envelope
|
|
SOAPPart soapPart = soapMessage.getSOAPPart();
|
|
SOAPEnvelope envelope = soapPart.getEnvelope();
|
|
envelope.setEncodingStyle( SOAPConstants.URI_NS_SOAP_ENCODING );
|
|
|
|
// remove all header information from envelope
|
|
envelope.getHeader().detachNode();
|
|
|
|
// create a SOAP body
|
|
SOAPBody body = envelope.getBody();
|
|
|
|
// add the element <ns1:BabelFishRequest> to the body
|
|
// in axis RC1, have to do this instead of body.addChildElement( ... )
|
|
Name babelFishRequestName = envelope.createName( "BabelFish", "ns1", "urn:xmethodsBabelFish" );
|
|
SOAPBodyElement soapMethod = body.addBodyElement( babelFishRequestName );
|
|
|
|
// add elements translationmode and sourcedata to BabelFishRequest
|
|
soapMethod.addChildElement( soapFactory.createElement( "translationmode" ).addTextNode( "en_fr" ) );
|
|
soapMethod.addChildElement( soapFactory.createElement( "sourcedata" ).addTextNode( "hello" ) );
|
|
|
|
// set the saves into the structure
|
|
soapMessage.saveChanges();
|
|
|
|
// output the message
|
|
System.out.println( "\n============= start request msg ==========\n" );
|
|
soapMessage.writeTo( System.out );
|
|
System.out.println( "\n============= end request msg ==========\n" );
|
|
|
|
URLEndpoint endpoint = new URLEndpoint( "http://services.xmethods.net:80/perl/soaplite.cgi" );
|
|
System.out.println( "\nSending message to URL: " + endpoint.getURL() );
|
|
|
|
// now make that call over the SOAP connection
|
|
SOAPMessage reply = soapConnection.call( soapMessage, endpoint );
|
|
|
|
// output the message reply
|
|
System.out.println( "\n============= start reply ==========\n" );
|
|
reply.writeTo( System.out );
|
|
System.out.println( "\n============= end reply ==========\n" );
|
|
|
|
// close down the connection
|
|
soapConnection.close();
|
|
}
|
|
}
|