Mon contrôleur (contrôleur abstrait) appelle une classe de service pour obtenir une URL. Dans ma classe de service que j'instancier ma dépendance dans le constructeur:Le printemps ne peut pas voir mes classes importées
le contrôleur abstrait:
public class MyPageController extends AbstractController{
private UserService userService;
private LearnerService learnerService;
private TwitterService twitterService;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
userService = UserServiceFactory.getUserService();
learnerService = new LearnerService();
twitterService=new TwitterService();
la classe de service:
public TwitterService(){
//
twitter = new Twitter();
}
mais quand je tente d'exécuter mon application web, le printemps lancers francs l'erreur suivante:
nested exception is java.lang.NoClassDefFoundError: twitter4j/Twitter:
java.lang.NoClassDefFoundError: twitter4j/Twitter
at com.hardwire.service.TwitterService.<init>(Twitter Service.java:21)
at com.hardwire.controller.
MyPageController.handleReq uestInternal(MyPageController.java:30)
Pourquoi lance-t-il cette erreur? Je ne comprends pas. J'ai importé la classe Twitter dans la classe de service qui l'utilise.
Merci pour la réponse. J'ai déjà copié la bibliothèque dans le dossier web-inf/lib. Maintenant ça marche! Cela modifie certaines hypothèses que j'ai eu dans le passé. Je pensais que c'était juste d'avoir une déclaration d'importation. Il s'avère que le dev et l'environnement de production ont des chemins de classes différents! (Ai-je bien compris?) – Jeune
oui le chemin de classe d'un environnement donné peut être différent pour un certain nombre de raisons. Une webapp Java aura accès au contenu de WEB-INF/lib, tous les autres éléments de classpath sont susceptibles de changer –