SEVERE: Exception à l'origine du filtre struts2 java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
Je suis en train de faire une petite application de connexion dans struts 2. Mon web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StrutsPrj</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>Login.jsp</welcome-file>
</welcome-file-list>
</web-app>
Struts.xml:
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="login" method="execute"
class="struts2.LoginAction">
<result name="success">Welcome.jsp</result>
<result name="error">Login.jsp</result>
</action>
</package>
</struts>
de connexion.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Screen - Struts 2</title>
</head>
<body>
<s:actionerror />
<s:form action="login.action" method="post">
<s:textfield name="username" value="UserName" size="20" />
<s:password name="password" value="Password" size="20" />
<s:submit method="execute" value="Login" align="center" />
</s:form>
</body>
</html>
De bienvenue.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Welcome Screen - Struts 2</title>
</head>
<body>
<h2>Congrates, <s:property value="username" />...!</h2>
</body>
</html>
LoginAction.java:
package struts2;
public class LoginAction {
private String username;
private String password;
public String execute() {
if (this.username.equals("admin")
&& this.password.equals("admin123")) {
return "success";
} else {
return "error";
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Et j'ai ajouté ces bibliothèques à mon projet:
- commons-logging-1.0.4.jar
- struts2-core-2.1.8.1.jar
- ognl-2.6.11.jar
- xwork-2.1.0.jar
- freemarker-2.3.9.jar
Quand j'ai essayer de l'exécuter sur Tomcat 6 j'ai eu l'erreur suivante:
Mar 10, 2011 1:17:59 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Java/jre6/bin/client;C:/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Java\jdk1.5\bin\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Liquid Technologies\Liquid XML Studio 2009\XmlDataBinder7\Redist7\cpp\win32\bin;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\MySQL\MySQL Server 5.0\bin
Mar 10, 2011 1:17:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:newPrj' did not find a matching property.
Mar 10, 2011 1:17:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context/Loader} Setting property 'useSystemClassLoaderAsParent' to 'false' did not find a matching property.
Mar 10, 2011 1:17:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:StrutsPrj' did not find a matching property.
Mar 10, 2011 1:17:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context/Loader} Setting property 'useSystemClassLoaderAsParent' to 'false' did not find a matching property.
Mar 10, 2011 1:18:00 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Mar 10, 2011 1:18:00 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2037 ms
Mar 10, 2011 1:18:00 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 10, 2011 1:18:00 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.32
Mar 10, 2011 1:18:01 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Mar 10, 2011 1:18:01 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Mar 10, 2011 1:18:01 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/StrutsPrj] startup failed due to previous errors
Mar 10, 2011 1:18:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Mar 10, 2011 1:18:01 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 10, 2011 1:18:01 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/97 config=null
Mar 10, 2011 1:18:01 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1756 ms
source d'informationauteur Sanju
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que les éléments suivants se trouvent sur votre chemin de classe:
Edit: Avez-vous suivi http://struts.apache.org/release/2.3.x/docs/how-to-create-a-struts-2-web-application.html à mettre en place votre projet? Pourquoi êtes-vous en utilisant struts 2.1.X.X et non 2.2.x.x?
Essayer:
Vous avez besoin d'ajouter un jar communes-lang3-x.x
faites défiler jusqu'à la fin de logs apache, vous pouvez trouver ClassNotFoundException: org.apache.commons.lang3.StringUtils :
J'ai eu le même problème. Je l'ai résolu de cette façon:
1er j'ai supprimé tous mes ajouté libs. Ensuite, j'ai ajouté via
Project->Properties->Deployment Assembly
.Avant, je viens de copier dans le
WEB-INF/lib
dossier. Cela ne semble pas fonctionner tout le temps.espérons que cette aide.
J'ai eu cette erreur de trop et j'ai vérifié mon
dtd
dansweb.xml
et j'ai changé la version de 2,4 à 2,5 .ajouter des communes-lang3 - jar fichier WEB-INF\lib dossier.
juste ajouter commons-lang3XXXX.jar à votre bibliothèque
Je suggère de faire un build Maven, les dépendances seront résolus par Maven.
C'est ce que j'ai eu à mettre en pom.xml
Un struts.d'action.excludePattern paramètre constant causé à moi, la même difficulté à maintenant. Je n'ai pas encore eu aucune explication, pas même une trace de la pile comme vous, qu'un pur "erreur FilterStart". J'ai suivi ce par un retour à la précédente version du code et vérifié, ce qui a changé.
Il semble, commons-lang3-XXX.jar fichier est manquant dans votre chemin de classe. Vous pouvez le résoudre en ajoutant le pot à votre dossier lib.
Concernant l'erreur:
PROBLÈME:
Il semble y avoir un problème avec la combinaison suivante
Eclipse - WTPPlugin - Struts2 - Maven3
RÉSULTATS:
Nous supposons que lorsque nous avons un projet en tant que "Exécuter sur le serveur" nous supposons que eclipse fonctionne maven, créé fichier WAR et se déploie sur le serveur. Mais sa ne fonctionne pas parfaitement pour moi. Je vois le fichier WAR dans le dossier de destination où maven crée la GUERRE, et la GUERRE est parfait. Mais eclipse semble fonctionner quelque chose d'autre.
SOLUTION:
Mettre tous les fichiers JAR dans le projet eclipse WEB-INF/lib.
Si vous utilisez le contrôle de version, assurez-vous d'ignorer le dossier lib.
Comment trouver tous les Pots lorsque vous utilisez maven? Aller au dossier cible et le fichier WAR. Rafale de l'ouvrir et aller sur le WEB-INF/lib. Copiez tous ces POTS de projet eclipse WEB-INF/lib.
Eu le même problème lors du démarrage de strut2 projet.
J'ai été en utilisant les dernières pots.
Web.xml a version 3.0. Et il ne contient pas le bon répartiteur dans sa configuration. J'ai ajouté le bon filtre répartiteur c'est à dire
au lieu de
ou
il a travaillé énormément.
Si vous utilisez Struts2 la version 2.5, vous devez changer de org.apache.struts2.répartiteur.ng.le filtre.StrutsPrepareAndExecuteFilter à org.apache.struts2.répartiteur.le filtre.StrutsPrepareAndExecuteFilter. Voir:
java.lang.ClassNotFoundException: org.apache.struts2.répartiteur.ng.le filtre.StrutsPrepareAndExecuteFilter dans web.xml
Étant nouveau pour le Struts2 cadre, je suis récemment tombé sur le même (ou très similaire) erreur. Dans mon cas, j'ai été en utilisant des annotations dans la classe de l'Action plutôt que de la struts.xml fichier.
Par exemple
Cependant quand j'ai changé la valeur de l'action à inclure l' *.l'action de l'extension (voir ci-dessous) montants seraient jeter le "SÉVÈRE: l'Exception de départ filtre struts2" erreur indiqué ci-dessus.
La cause de cette erreur n'était pas évident car il n'a pas se manifester immédiatement. En regardant à travers le Tomcat localhost..fichier journal, j'ai trouvé la stacktrace de l'erreur et a été en mesure de remédier au problème.