6
votes

Numéro - Java.lang.classnotfoundingException: org.springframework.web.servlet.dispatchersservlet

J'essaie d'obtenir une application de printemps simple et d'exécuter posté sur exemple de printemps.

Je reçois xxx

J'ai printemps.jar, printemps-webmvc.jar et tous les autres potes requis en place et Je ne suis donc pas sûr pourquoi je reçois cette erreur.

voici mon fichier web.xml xxx

et mon fichier Spring-serlet.xml xxx < P> Je ne suis pas sûr de savoir ce qui ne va pas ici et apprécierait toute aide ou suggestion. J'ai parcouru des forums Springsource et d'autres questions similaires à ce sujet et cela ne fonctionne toujours pas. Toute suggestion quant à ce qui pourrait être le bloc routier ici?

mises à jour:

Disternersservlet Erreur est parti mais maintenant Une autre erreur

stacktrace: xxx

Question similaire pour la partie de mise à jour

Question de suivi sur @Autowiring ne fonctionne pas


15 commentaires

Avez-vous ajouter le cadre de printemps 3.0 MVC JAR au path de classe?


Je l'ai ajouté au dossier web-inf / lib


S'il vous plaît poster la stacktrace complète. Un ClassNotFoundException peut parfois dire que certaines autres classes sont manquantes ou que l'initialisation de la classe a échoué ...


@Stephan: Tache de pile complète mis à jour pour référence


Qu'est-ce que Maven doit faire avec n'importe lequel de cela? Je le vois dans la trace de la pile.


J'utilise Maven pour tirer des fichiers JAR à l'aide de la configuration POM.XML.


Web-Inf / Lib et Web-Inf / Lib sont deux répertoires différents sur une machine non-Windows (Linux, UNIX, MAC, etc.).


J'ai pu me débarrasser de l'erreur de servlet Dispatcher, mais j'en ai maintenant un autre concernant java.lang.noschfielderror , des indices à ce sujet


Juste pour être sûr: avez-vous copié votre fichier JAR dans WebApp sur votre serveur Tomcat?


Pouvez-vous confirmer le nom de votre "Spring-servle.xml". Selon la spécification, il devrait être "Spring-servle.xml".


Cela peut être tout ce que vous dites que c'est; Le nom dans le web.xml doit correspondre à celui -servlet.xml


Il devrait être [nom de servlet] -servlet.xml par défaut si l'emplacement du fichier de configuration n'est pas fourni.


Je travaille toujours sur la question, mais j'ai pu résoudre les erreurs actuelles, mais j'ai maintenant un problème avec l'obtention d'un @autowiring pour travailler sur des champs, d'obtenir: L'injection de dépendances autonomes a échoué; Exception imbriquée est org.springframework.beans.Factory.BeancreationException:


Question de suivi sur Stackoverflow.com/q/6748939/164299


Sur une note latérale, ne définissez jamais <étendue> compiler dans le POM pour Spring-webmvc.


5 Réponses :


8
votes

L'exception CNF devrait toujours vous faire penser ", il me manque un pot".

Dans ce cas, vous voulez le ressort 3.0.5 JAR nommé org.springframework.web.servlet-3.0.5.release.jar . Il contient le Disternersservlet .

Si vous pensez qu'ils sont dans votre classe de classe, vous ne comprenez peut-être pas comment la définir correctement.

Vous ne devez pas avoir une variable d'environnement de classe de classe.

Les pots de printemps et toutes leurs dépendances devraient être dans votre Web-Inf / Lib.


16 commentaires

J'ai ressort-webmvc-3.0.5.release.jar qui contient Disternersservlet mais je reçois toujours ce problème.


Le chargeur de classe n'est pas d'accord avec vous.


C'est le problème qui est confronté. Quelles mesures devrais-je faire


J'ai tous mes pots de printemps dans le dossier web-inf / lib


Y a-t-il d'autres étapes que vous recommanderiez de comprendre pourquoi Disternersservlet n'est pas localisé par le chargeur de classe?


Vous voulez dire que votre fichier JAR Spring-webmvc contient un org.springframework.web.Servlet.Dispatcherservlet Class?


@Troth - Oui, Disternersservlet est au printemps-webmvc.jar


Où est ce bocal dans votre application maintenant? Comment est-ce que vous y référez-vous dans la classe de classe?


@Rachel: C'est un nom de fichier étrange. Les fichiers de jar à ressort standard ne sont pas nommés de cette façon. Utilisez-vous ce fichier dans votre environnement de compilation? Je vous suggère de télécharger la version officielle Spring et utilisez plutôt ces fichiers.


Jar est dans la cible / Mavenweb-0.0.1-Snapshot / Web-Inf / Lib / Spring-webmvc.jar et dans les bibliothèques Dossier sous Mavenweb / Javaresources / Bibliothèques / Spring-webmvc.jar


@duffymo: J'ai pu résoudre le problème du servlet Dispatcher et d'obtenir une autre erreur grave: StandardWrapper.ThrefieldRor: Application_Context_id_prefix, avez-vous déjà expérimenté cette erreur ou sur quoi pourrait être une telle erreur?


Je recommanderais de me moquer de la photo.


J'ai coupé et collé le nom du pot dans My Spring 3.0.5 télécharger qui a réveillé. Je suis certaine que la mienne a raison; Je ne peux pas parler pour toi ou Maven.


Google trouve cette entrée du forum de printemps sur le problème de préfixe d'identité: Forum. springsource.org/... . Débarrassez-vous de Maven - ça te tue. Téléchargez les trucs de printemps 3.x et mettez-le dans votre Web-Inf / Lib. Il ne faut pas avoir besoin de maven pour faire ça.


Consultez ceci: Stackoverflow.com/Questtions/10046654/...


Une autre raison pour laquelle je déteste Maven: c'est une complication inutile qui ajoute peu ou pas de valeur.



3
votes

Si vous utilisez Maven, vous avez besoin de cette dépendance:

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <!-- Set this to the respective version -->
   <version>3.0.5.RELEASE</version>
</dependency>


1 commentaires

Je n'ai cette dépendance que mais je reçois toujours un problème de servlet Dispatcher



0
votes

Au départ, j'avais la même erreur même si j'ai configuré le chemin de construction en ajoutant des pots externes (à Eclipse Indigo). Plus tard, j'ai copié les fichiers JAR directement à web-inf / lib et le problème a disparu.


0 commentaires

0
votes

J'ai eu un problème similaire ... J'augs que le Spring-WebMVC est une dépendance d'exécution. Le projet peut être compilé, mais vous obtenez l'exception d'exécution.

Vous pouvez l'ajouter en tant que dépendance d'exécution dans votre POM, et je pense que cela devrait fonctionner ... (En tant que dépendance du temps compilé, cela fonctionne, je ne sais pas si vous souhaitez ajouter la dépendance à l'aide de la portée "Compiler")


0 commentaires

0
votes

C'est une très vieille question

Selon un article que j'ai lu "le plus probablement Les fichiers JAR de ressort de ressort nécessaires ne sont pas chargés et déployés sur Tomcat Startup. Mais Remarque: Ces fichiers sont dans votre classe de classe et que vous n'obtenez aucune erreur dans Eclipse IDE pendant le développement temps. Il ne se produit que pendant l'exécution. "

C'est comme ça que j'ai résolu la mine:

  1. Faites un clic droit sur le projet.
  2. Choisissez Propriétés.
  3. Cliquez sur le déploiement de déploiement.
  4. Cliquez sur Ajouter.
  5. Sélectionnez "Entrées de chemin de construction Java"
  6. Sélectionnez les dépendances et la finition maven.

    Nettoyez le projet et vous êtes prêt à partir.


0 commentaires