// --------------------------------------------------- // Example chapitre 9 // // Application cliente pour recuperer le nom // d'habitant d'un pays // --------------------------------------------------- import java.io.*; import java.util.*; import java.net.*; import org.w3c.dom.*; import org.apache.soap.util.xml.*; import org.apache.soap.*; import org.apache.soap.encoding.*; import org.apache.soap.encoding.soapenc.*; import org.apache.soap.rpc.*; /** * */ public class NombreHabitants { private static final String _endpoint = "http://cs.uga.edu:8080/axis/services/urn%3acountryInfoLookup"; private static final String _operation = "getPopulation"; /** * Point d'entree de l'application */ public static void main( String[] args ) { // 1. // Verification des arguments if ( args.length != 1 ) { System.out.println("Vous devez passer en argument le nom du pays (en anglais)."); System.exit(1); } String pays = args[0]; // ----------------------------------------- // 2. // Prepare le message de requete SOAP // Creation de l'objet symbolisant la requete Call call = new Call(); // Le nom de l'operation a invoquer call.setMethodName( _operation ); // Le modele d'encodage call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC ); // Ajoute les divers arguments Vector params = new Vector(); // Le paremetre "in0" de type "String" dans lequel nous indiquons // le pays recherche params.addElement(new Parameter("in0", String.class, pays, null)); // Fixe les parametres pour cette requete call.setParams(params); // // ----------------------------------------- // 3. // Invocation de la requete Response resp = null; try { resp = call.invoke( new URL(_endpoint), "" ); } catch ( SOAPException ex ) { System.out.println("Une exception s'est produite durant l'invocation :"); System.out.println("Code = " + ex.getFaultCode() + " : " + ex.getMessage() ); return; } catch ( Exception ex ) { ex.printStackTrace(); return; } // ----------------------------------------- // 4. // Consulte la reponse if (!resp.generatedFault()) { // Recupere le parametre de retour Parameter ret = resp.getReturnValue(); // Extrait la valeur Object value = ret.getValue(); // Affiche le resultat if ( value != null ) System.out.println( value ); else System.out.println("Impossible de connaitre le nombre d'habitants"); } else { // La reponse est un message d'erreur SOAP Fault fault = resp.getFault(); System.out.println("Message d'erreur recu !"); System.out.println(" Code = " + fault.getFaultCode() ); System.out.println(" Message = " + fault.getFaultString() ); } // // ----------------------------------------- } }