2011-08-10 1 views
0

J'ai une question rapide. Dans mon projet Grails, je fais des appels de service Web. Un des appels (pour une fonction de recherche) a tendance à expirer s'il n'y a pas assez de caractères à rechercher. Je ne peux pas augmenter le nombre de caractères requis, donc j'essaie d'attraper l'exception et d'afficher une page d'erreur demandant à l'utilisateur d'ajouter des paramètres plus détaillés.Apache Erreur incompatible avec les lancers de classe

La méthode ressemble à ceci:

import org.apache.http.client.HttpResponseException 

class RestSearchService implements SearchService { 
    List<Person> getPersonSearch(String fName, String lName) throws HttpResponseException { 
     ... 
     // Make the call 
     ... 
    } 
} 

je puis attraper l'exception jetée dans le contrôleur pour rediriger vers la page d'erreur. Je l'ai testé et ce code semble fonctionner correctement. Le problème est que la méthode ci-dessus est souligné (j'utilise SpringSource Tool Suite pour un IDE) et dit

Exception HttpResponseException is not compatible with 
throws clause in SearchService.getPersonSearch(String, String) 

Est-ce que quelqu'un sait ce qui pourrait être la cause? En outre, cela peut-il signifier qu'il existe un problème réel ou une situation où cela va provoquer la rupture de l'application? Comme je l'ai dit, d'après ce que je peux dire, le lancer/rediriger fonctionne comme un champion, mais cette erreur me rend nerveux à propos du passage de l'application à la production.

Merci à l'avance,

-Mike

Répondre

1

Je dirais que votre SearchService d'interface est pas juste! Quelle est la signature de la méthode 'getPersonSearch' dans l'interface?

son comme celui-ci:

List<Person> getPersonSearch(String fName, String lName); 

ou comme ceci:

List<Person> getPersonSearch(String fName, String lName) throws HttpResponseException; 

le second est correct, si vous avez le premier, thats devrait être le problème!

+0

Merci d'avoir signalé l'erreur copier/coller - Je l'ai corrigé! En outre, vous aviez absolument raison, j'ai oublié de lancer l'erreur dans mon interface. Merci pour l'aide! –

Questions connexes