live search api web service avec java

live search api web service avec java - Java - Programmation

Marsh Posté le 03-06-2008 à 02:03:42    

Bonsoir à tous,
je viens de découvrir le web service de recherche de windows live : "live search api web service", je voudrais l'essayé pour l'interger dans mon application, pour mon mémoire de fin d'études.
 
à l'aide de wsdl2java j'ai créé les classes java pour la consommation du service web.Puis, j'ai créé un client java pour l'invoquer, je reçoit cette erreur lors de l'exécution:
 
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:  
 faultString: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
 faultActor:  
 faultNode:  
 faultDetail:...
 
le code java associé est:
 
public static void main(String[] args) {
 MSNSearchService service = new MSNSearchServiceLocator();
  try {
MSNSearchPortType port = service.getMSNSearchPort();
  int arraySize = 1;
  SourceRequest[] sr = new SourceRequest[arraySize];
  sr[0] = new SourceRequest();
  sr[0].setSource(SourceType.Web);
  sr[0].setResultFields(new String[]{"All"});
// le type d'entrée de ResultField est normalement "ResultFieldMask" (dans un
// tutoriel que j'ai trouvé) mais moi il m'accepte que String[]
  SearchRequest query = new SearchRequest();
  query.setAppID("My AppID" );
  query.setCultureInfo("fr-FR" );
  query.setQuery("poisson" );
  query.setRequests(sr);
// le paramètre qui suit est normalement optionnel
//j'ai eu en premier lieu une erreur m'indiquant que "Flags" ne peut
//pas etre "null", j'ai pas su quoi mettre? c'est quoi le type exacte?
  query.setFlags(new String[] {"fr"});
   
  SafeSearchOptions safe = new SafeSearchOptions("Strict" );
  query.setSafeSearch(safe);
   
  try {  
   SearchResponse response = port.search(query);
   
   SourceResponse[] sourceResponse =  response.getResponses();
   Result[] sourceResults = sourceResponse[0].getResults();
   
   System.out.println("Total résultats : "+sourceResponse[0].getTotal());
   
   if (sourceResponse[0].getTotal()> 0)
   {
    int nb = sourceResults.length;
    int i =0;
    while (i < nb){
     i++;
     System.out.println("Titre "+i+" : "+sourceResults[0].getTitle());
    }
   }
   
   
   
  } catch (RemoteException e1) {
   e1.printStackTrace();
  }
  } catch (ServiceException e) {
  e.printStackTrace();
 }
 }
 
Si quelqu'un à une idée du problème? j'en serai reconnaissante!
cordialement

Reply

Marsh Posté le 03-06-2008 à 02:03:42   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed