live search api web service avec java - Java - Programmation
MarshPosté 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);
if (sourceResponse[0].getTotal()> 0) { int nb = sourceResults.length; int i =0; while (i < nb){ i++; System.out.println("Titre "+i+" : "+sourceResults[0].getTitle()); } }
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