Tomcat ne parvient pas à charger Struts 2 (à l'exception de départ filtre struts2)
Je suis à l'aide de l'Eclipse (Java EE /Helios) IDE, struts2, et Tomcat 7.0.6. Mon application web fonctionnait très bien hier, mais un inconnu changement a tué et que le serveur démarre mais ne fonctionne plus correctement. Lorsque j'essaie de visualiser une .fichier jsp, je suis accueilli avec le message:
description La ressource demandée ()
n'est pas disponible.
(même s'il décide de le mettre en place que l'erreur)
Un coup d'oeil dans la console me donne cette erreur quand j'essaie de lancer le serveur Tomcat via Eclipse et chargez les Ajouter.jsp page:
...
INFO: Starting service Catalina
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.6
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/StrutsTest] startup failed due to previous errors
Feb 2, 2011 1:38:09 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
...
Ce qui apparaît être un problème avec l'ensemble de la struts2 applications que j'ai fait précédemment. Le redémarrage d'Eclipse et/ou mon PC ne semble pas aider.
Voici une copie de mon Web.xml (qui est très similaire, tout au long de chaque projet):
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Development Environments</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>Add.jsp</welcome-file>
</welcome-file-list>
</web-app>
J'ai essayé la mise à jour de certains .les bocaux dans mon classpath pour la dernière version (bien que je n'ai pas s'attendre à ce que de travailler). Personne ne sait ce qui pourrait mal se passer? Je suis heureux de vous donner plus d'informations si vous savez quoi d'autre est nécessaire.
- On dirait que vous êtes absent le
servlet-api
JAR. Qui doivent être emballés avec Tomcat. - J'ai des "servlet-api.jar" dans le C:\apache-tomcat-7.0.6\lib répertoire, le long de avec d'autres .les fichiers jar (catalina.jar, jasper.jar, tomcat-api.jar, catalina-ant.jar, etc) Shoult l'servlet-api.jar être dans un autre répertoire? Ou devrais-je être compris d'une certaine façon?
Vous devez vous connecter pour publier un commentaire.
J'ai dû ajouter un chemin d'accès à servlet-api apache dossier lib. Bizarre, mais après cela, il a travaillé
J'ai vu ce genre de chose plusieurs fois avec Tomcat, Eclipse, où les classes semblent soudain disparaître. Je pense que Eclipse/Tomcat juste obtenir eux-mêmes confus à la fois. Il semble se produire plus souvent si j'ai quitté le serveur en cours d'exécution avec l'auto-déployer activé et que je fais beaucoup de petits changements.
Quand cela arrive, je arrêtez le serveur. Je exécuter "propre" sur mon projet et nettoyer ensuite sur le serveur tomcat et nettoyer le serveur de répertoire de travail. Lorsque je redémarre le serveur, tout commence à travailler de nouveau.
Tout d'abord, essayez de vérifier le serveur Tomcat journal pour voir si Tomcat est confronté à un certain type d'erreur fatale lors du démarrage.
L'exception indique que la servlet API POT ne peut pas être trouvée, mais vous semblez avoir le POT dans l'emplacement correct.
Vous exécutez l'application à partir d'Eclipse? Si oui, peut-être Eclipse n'est pas le démarrage de Tomcat correctement. Ce qui se passe si vous essayez de démarrer Tomcat manuellement et déployer votre application sans Eclipse?
Mise à jour
Puisque le comportement est cohérent si l'Éclipse a commencé Tomcat ou vous avez démarré manuellement, nous pouvons exclure Eclipse comme une partie du problème.
Je voudrais essayer le suivant:
Assurez-vous d'avoir tous les pots de notamment les communes-lang3-x.x
Vous pouvez trouver des disparus pot en regardant les logs apache comme:
Causés par: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
au org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
au org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
... 55 plus
Au minimum pour exécuter un helloworld genre Struts2 application nécessiterait ces pots.