[WebServices][WSDL] Utilisation (basique) de la Google API
Salut,
Google met à disposition des développeurs une API (version bêta) qui permet de faire appel à ses services à travers une interface SOAP / wsdl.
Cette API est principalement constituée d'un fichier wsdl qui décrit le service sous forme d'une classe GoogleSearch (en fait 2, 1 pour la recherche, 1 pour les résultats + 1 exception).
L'utilisation de ces classes est plutôt simple, mais je ne comprends pas comment faire pour utiliser ce fichier wsdl. :oops:
Est-il nécessaire d'utiliser des APIs du pack WebService Developper Pack JAX-RPC et JAXB (ou d'autres APIs) pour transformer le wsdl en définitions de classes intelligibles pour le compileur java ? Ou est-ce que je suis complètement à côté de la plaque ?
Si quelqu'un pouvait m'indiquer comment compiler la classe GoogleAPIDemo fournie avec le fichier wsdl en guise d'exemple (code après la signature), je pense que ca me sortirai d'affaire ... et je lui en serais très reconnaissant .
--
Rom_1
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| /* Copyright (C) 2002, Google, Inc. */
package com.google.soap.search;
import java.io.*;
/**
* The GoogleAPIDemo is a demonstration of using the Google Web APIs for
* search and fetching pages from the cache.
*/
public class GoogleAPIDemo {
/** Demonstration program to call the Google Web APIs service.
public static void main(String[] args) {
// Parse the command line
if (args.length != 3) { printUsageAndExit(); }
String clientKey = args[0];
String directive = args[1];
String directiveArg = args[2];
// Report the arguments received
System.out.println(...);
// Create a Google Search object, set our authorization key
GoogleSearch s = new GoogleSearch();
s.setKey(clientKey);
// Depending on user input, do search or cache query, then print out result
try {
if (directive.equalsIgnoreCase("search")) {
s.setQueryString(directiveArg);
GoogleSearchResult r = s.doSearch();
System.out.println("Google Search Results:");
System.out.println("======================");
System.out.println(r.toString());
} else if (directive.equalsIgnoreCase("cached")) {
System.out.println("Cached page:");
System.out.println("============");
byte [] cachedBytes = s.doGetCachedPage(directiveArg);
// Note - this conversion to String should be done with reference
// to the encoding of the cached page, but we don't do that here.
String cachedString = new String(cachedBytes);
System.out.println(cachedString);
} else if (directive.equalsIgnoreCase("spell")) {
System.out.println("Spelling suggestion:");
String suggestion = s.doSpellingSuggestion(directiveArg);
System.out.println(suggestion);
} else {
printUsageAndExit();
}
} catch (GoogleSearchFault f) {
System.out.println("The call to the Google Web APIs failed:");
System.out.println(f.toString());
}
}
private static void printUsageAndExit() {
System.err.println("Usage: java " +
GoogleAPIDemo.class.getName() +
" <client-key>" +
" (search <query> | cached <url> | spell <phrase>)");
System.exit(1);
}
} |
Re: [WebServices][WSDL] Utilisation (basique) de la Google A
Salut,
Citation:
Envoyé par Rom_1
L'utilisation de ces classes est plutôt simple, mais je ne comprends pas comment faire pour utiliser ce fichier wsdl. :oops:
En Java tu n'a pas à utiliser ce fichier WSDL. En effet ce fichier permet de décrire le service web et peut être utilisé pour générer (ou écrire) le code permettant de dialoguer avec le webservice...
Toutefois Google propose déjà des classes pour cela c'est donc totalement inutile (cf FAQ Google : Why do you provide Java client code if it can be generated from WSDL?).
Citation:
Envoyé par Rom_1
Est-il nécessaire d'utiliser des APIs du pack WebService Developper Pack JAX-RPC et JAXB (ou d'autres APIs) pour transformer le wsdl en définitions de classes intelligibles pour le compileur java ? Ou est-ce que je suis complètement à côté de la plaque ?
Ce doit être possible mais tu peux directement utiliser les classes fournit par Google ;)
Citation:
Envoyé par Rom_1
Si quelqu'un pouvait m'indiquer comment compiler la classe GoogleAPIDemo fournie avec le fichier wsdl en guise d'exemple (code après la signature), je pense que ca me sortirai d'affaire ... et je lui en serais très reconnaissant .
Il n'y a rien de particulier à faire lors de la compilation... mais il faut bien entendu que la librairie googleapi.jar soit présent dans le classpath à la compilation et à l'exécution...
Donc en ligne de commande :
Code:
1 2 3 4
| javac -cp googleapi.jar:. GoogleAPIDemo.java
java -cp googleapi.jar:. GoogleAPIDemo TA_CLEF search "mot-clefs" |
a++