9
votes

Servlet: sévère: allouer une exception pour servlet

La stacktrace suivante est ce que je reçois lorsque j'essaie d'accéder à un servlet, ce qui semble aller bien de Tomcat Manager.

The package names are proper inside 'classes', also, the web.xml is proper. 


2 commentaires

Est-ce que cela se produit lors de la course à Eclipse ou dans un tomcat autonome?


Vérifiez ceci Stackoverflow.com/Questtions/4076601/...


12 Réponses :


3
votes

en quelque sorte vous manquez le servlet-Api.jar . Il devrait être situé dans le dossier tomcat \ lib .


0 commentaires

1
votes

" java.lang.error: problèmes de compilation non résolus :"

dit que l'application n'est pas compilée correctement. Veuillez mettre le servlet-api.jar dans la classe de classe, pas seulement dans le dossier LIB du projet, mais aussi attacher à CLASSPATH.

Veuillez vous assurer que le même pot est également disponible dans Tomcat / Common / Lib Dossier.


2 commentaires

Tomcat / Common / Lib est pour Tomcat 5.5 ou plus tôt. Depuis Tomcat 6, il n'est pas pertinent.


causée par la construction corrompue éclipse. Résolu



4
votes

Après avoir examiné les exceptions, vous avez une place où vous avez mal placé les fichiers JAR

(servlet-api.jar). Il devrait être sous votre projet / Dossier Web-Inf / Lib. Je pense que ce sera

fonctionne si vos fichiers JAR sont dans le chemin spécifié ci-dessus.


0 commentaires

12
votes

Enfin, j'ai eu mon erreur. C'était un problème causé par la construction Eclipse. Étant donné que la construction n'était pas appropriée, les fichiers de classe où sont corrompus. J'ai nettoyé tout le projet, j'ai pris une construction fraîche, maintenant sa fonctionnement bien. Merci pour vos réponses.


0 commentaires

0
votes

J'ai également vu cette exception où l'annotation @Resource a provoqué un conflit avec deux technologies sur les orteils de l'autre (API Tomcat Servlet API 3 et Spring).


0 commentaires

2
votes

si vous obtenez cette erreur "sévère: allouer une exception pour servlet" couplé à une exception "Java.Lang.InstantiationException", assurez-vous que votre classe de servlet a un constructeur sans argument public puisque le conteneur de servlet doit pouvoir être capable de instanciez-le.

Si votre classe de servlet ne dispose pas d'un constructeur d'argument non zéro explicite défini (ce qui est généralement le cas), le constructeur par défaut fourni par le compilateur suffirait.


0 commentaires

2
votes

J'ai eu le même problème! Passé 2 heures à chercher une solution! Et ici c'est!

WebContent (sous Projet Web dynamique) -> Web-Inf -> lib (c'est vide- Très bien) -> Cliquez avec le bouton droit de la souris sur IT (LIB) -> Piste de construction -> Utiliser comme source Dossier.

fait!


1 commentaires

Content de l'entendre!



1
votes

Mon cas utilisait J Java 8 Lambda Expressions avec une version plus ancienne de repos qui n'était pas basée sur Java 8


0 commentaires

0
votes

Pour moi, c'est arrivé quand j'utilisais Lambda Expression dans mes tests Junit. Après avoir commenté les tests, le serveur a renvoyé la réponse API appropriée.


0 commentaires

0
votes

J'ai eu l'exception similaire
Tout en bougeant de Java 8 à Java 11, j'ai eu l'erreur suivante

exception org.apache.catalina.core.aplicationContext.log servlet.init () pour servlet [Santé-servlet] a lancé Exception Java.lang.illegalargumentException P >

Pour corriger l'erreur J'ai mis à niveau la version dans POM P>

    <servlet>
    <servlet-name>health-servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.xyz.platform.registry.service.ServiceRegistryApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>


0 commentaires

0
votes

Aller aux propriétés du projet -> Assemblage de déploiement -> Vérifiez si les dépendances Maven sont visibles, s'ils manquent le même que nous obtenons la même erreur. Je pourrais résoudre mon ajout de la dépendance maven dans l'assemblage de déploiement.

[Après avoir ajouté une dépendance maven dans l'ensemble de déploiement, cela ressemble à ceci]

https://i.stack.imgur.com/7iwaw.jpg


0 commentaires

0
votes

J'ai eu deux classes / services annotés avec les mêmes valeurs de chemin ( javax.ws.rs.path ). Lorsque l'API de repos essayait d'introduire lui-même, il était difficile de voir instantanément une erreur sur les chemins dupliqués.


0 commentaires