[tomcat-eclipse] Servlet exception - wrapper [Résolu/Fermé]

Signaler
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
-
 c# -
Bonsoir,

Je vous écris pour demander conseil car j'ai une erreur et ne trouve pas d'ou cela vient.

Voilà l'erreur en question lorsque je démarrre mon serveur tomcat sous éclipse :


StandardWrapper[/TOTO:TotoAction]: La servlet TotoAction est marqué comme indisponible
StandardContext[/TOTO]: La servlet /TOTO a généré une exception "load()"
javax.servlet.ServletException: L'enrobeur (wrapper) ne peut trouver la classe servlet org.titi.toto.tata.user.service.TotoActionServlet ou une classe dont elle dépend
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:844)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:776)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3363)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3586)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
	at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
	at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
----- Root Cause -----
java.lang.ClassNotFoundException: org.titi.toto.tata.user.service.TotoActionServlet



Je me demandais d'ou pouvais bien provenir cette erreur. Dans mon web.xml, j'ai pourtant bien déclarer la classe :
<servlet-class>org.titi.toto.tata.user.service.TotoActionServlet</servlet-class>


Mes classes sont compilées. Tout me semble bon... mais faut croire que non :s

Quelqun saurait-il m'aider s'il vous plait ?

Merci.

14 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840
Bonjour,

Ce qui met la puce à l'oreille c'est :
java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence. 


Erreur survenant au lancement de tomcat.
Il faut savoir (et tu le sais certainement puisque tu as configuré tomcat / éclipse pour lancer ton projet), c'est que tomcat se base sur le fichier server.xml situé dans l'un de ses répertoires d'installation afin de connaitre quelles sont les applications web à lancer (et où elles se trouvent).
Or, apparemment, tomcat n'arrive pas à lire ce fichier. Cette erreur est généralement due au fait que les parseurs natif Java n'aime pas les caractères invisibles (ce que l'on appele aussi le BOM) de début de fichier XML.
Le BOM est insérer automatiquement par certains éditeur au début des fichiers XML.

Conclusion : est-ce que par hasard tu aurais édité avec un éditeur externe (par exemple ultra edit) ton fichier server.xml pour le modifier.
Si oui, regarde dans ton editeur si tu n'as pas une option pour supprimer les BOM en début de fichier. Si oui, fais la modification, puis ré-enregistre ton fichier sans le BOM, et ensuite redémarre tomcat pou voir ce qu'il se passe.


PS: désolé pour vous autres je n'avais pas vu qu'il y avait eu tant de message par la suite :s
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57813 internautes nous ont dit merci ce mois-ci


troll ?
Messages postés
21
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
19 août 2010

bonjour
j'ai le mem problem que vous
quand j'execute mon application voila l'erreur qui s'affiche

type Rapport d'état

message /exemplecrm/Cnx

description La ressource demandée (/exemplecrm/Cnx) n'est pas disponible.

voilà le code que j'execute:
l'interface en 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Authentification</title>
</head>
<body><center>
<form action="Cnx" method="post">
<table>
<tr>
<td width="141">Login :</td>
<td width="156"><input type="text" name="log"></td>
</tr>
<tr>
<td>mot de passe :</td>
<td><input type="password" name="pas"></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="ok" value="Connecter"></center></td>
</tr>
</table>
</form></center>
</body>
</html>

servlet:


import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

@SuppressWarnings("serial")
public class Cnx extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

public Cnx() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try{
String rep=null;
String log=(String) request.getAttribute("log");
String pas=(String) request.getAttribute("pas");
Connection cnx=null;
Connexion.ChargerPilote();
cnx=DriverManager.getConnection(Connexion.Connection_String);
Statement st=cnx.createStatement();
ResultSet rs=st.executeQuery("select password from authentification where login = " + log);
while(rs.next()){
rep=rs.getString("password");
}
if(rep.equals(pas))response.sendRedirect("Acceuil.jsp");
else response.sendRedirect("Login.jsp");
}catch(Exception ex){
ex.printStackTrace();
}
}
}

alors qui peux nous aidez ;)
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840
En fait voici un screen d'une erreur analogue.

http://devel.edoplan.be/Soft_Gestion/ActiTime/jakarta-tomcat-4.1.31/logs/localhost_admin_log.2005-01-29.txt

Je l'ai lorsque je lance tomcat depuis eclipse.
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840
Bhou... jamais personne pour m'aider >.< (plaisante)

Bon j'ai finit par trouvé. Un truc à la con pour changer...
Eclipse du jour au lendemain ne compilait plus mes classes dans le bon répertoire (/sources/web_app/WEB-INF/classes/) donc forcément tomcat n'allait pas trouver ^^

Donc j'ai rebuilder tous mes projets de A à Z dans le bon ordre, car certains dépendent des autres projets, puis recompiler le projet en relation avec tomcat et là pof magique, mes .class étaient dans le bon rép :s

Des fois faut pas chercher à comprendre je crois...
Salut,
Et oui, 2 ans après, des gens sont intéressés, encore, par ton message.
Bon, moi j'ai un problème presque similaire.
Quand je lance mon appli depuis tomcat manager (tomcat5 en fait) j'ai le message d'erreur: javax.servlet.ServletException: L'enrobeur (wrapper)ne peut trouver la classe servlet vdm.attacc.ihm.IdentificationServlet ou une classe dont elle dépend.
Je suis débutant dans la programmation web et j'ai besoin de ton helllllllllllllllllllppppppppppppp.
ça veut dire quoi builder un projet au fait?

Merci par avance et dis toi que "ma vie est entre tes mains".
Peut être pas ma vie mais le debut de la vie de mon appli. lol

A+
voici l'erreur quand je fé appel a ma servlet ,
qq peu il m'aider?

Etat HTTP 500 -

--------------------------------------------------------------------------------

type Rapport d'exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

javax.servlet.ServletException: L'exécution de la servlet a lancé une exception


cause mère

java.lang.NoClassDefFoundError
getRoute.processRequest(getRoute.java:49)
getRoute.doGet(getRoute.java:126)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Tomcat.


--------------------------------------------------------------------------------

Sun-Java-System/Web-Services-Pack-1.4
Bonjour,
je suis nouvelle sur struts, j'ai essayé un exemple banal d'accès à la base de donnée et j'ai eu l'erreur suivante:
"Etat HTTP 404 - Servlet action n'est pas disponible"

mon fichier de départ base.jsp :
<body>

<h1>Hello</h1>
<html:link action="/MaBase" linkName="Voir Liste" >Voir Liste</html:link>
</body>

le fichier struts-config.xml:

<struts-config>
<data-sources>
<data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource" key="empTable">
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="url" value="jdbc:mysql://localhost:3306/revue" />
<set-property property="username" value="" />
<set-property property="password" value="admin" />
<set-property property="validationQuery" value="SELECT * FROM redacteur" />
</data-source>

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

<message-resources parameter="com/myapp/struts/ApplicationResource"/>


mon fichier pour afficher le résultat resultat.jsp :
<body>
<%
session.getAttribute("allMyCustomers");
%>
<h1>Welcome!</h1>
<bean:write name="client" property="name"/>
<logic:notPresent name="allMyCustomers">
<h2>Data not in Scope</h2>
</logic:notPresent>
<logic:present name="allMyCustomers">
<logic:empty name="allMyCustomers">
<h2>DataSource in scope but no data found</h2>
</logic:empty>
</logic:present>
<logic:present name="allMyCustomers">
<p>Tese are our users</p>

<table border="1">
<thead>
<tr>
<th><bean:message key="Name"/></th>
<th><bean:message key="Prenom"/></th>
</tr>
</thead>
<tbody>
<logic:iterate id="redacteur" name="allMyCustomers">
<tr>
<td><bean:write name="redacteur" property="name"/></td>
<td><bean:write name="redacteur" property="prenom"/></td>
</tr>
</logic:iterate>

</tbody>
</table>

</logic:present>
</body>

l'action servlet:
package com.myapp.struts;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.sql.*;
import java.util.ArrayList;
import javax.sql.*;
import org.apache.struts.Globals;
public class NewStrutsAction extends Action {
private DataSource dataSource;
public ArrayList customerList = new ArrayList();
private final static String SUCCESS = "success";
private HttpSession session;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

session = request.getSession();

/** Ici, la méthode qui fait la connection à la DataSource est appelée: */
customerList = getCustomers() ;
/** Ici, nous mettons le customerList dans le scope, pour pouvoir l'utiliser dans la page
JSP: */
if(customerList != null){
session.setAttribute("allMyCustomers" , customerList);

}
return (mapping.findForward(SUCCESS));
}
private ArrayList getCustomers(){
Connection conn = null;
Statement stmt = null;
PreparedStatement prpStmt = null;
ResultSet rs = null;
StringBuffer resultString ;
try{
/** Ici, 'empTable' est associé à la clef de la DataSource dans struts-config.xml: */
dataSource = (DataSource)servlet.getServletContext().getAttribute("empTable");
conn = dataSource.getConnection();
row r=new row("ali","baba");

session.setAttribute("client",r);
String sqlQuery = "SELECT * FROM redacteur";
prpStmt = conn.prepareStatement(sqlQuery);
rs = prpStmt.executeQuery();

/** Ici, nous avons mis le champs 4 (le nom) et le champs 7 (la ville) dans la
customerList: */
while (rs.next()) {
customerList.add(new row(rs.getString(2), rs.getString(3)));
System.out.println("nom="+rs.getString(2));
}
rs.close();
} catch ( SQLException e ) {
System.err.println("SQL Exception occured while accessing the table" );
e.printStackTrace();
return null;
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
return customerList;
}
}

et la classe row.java:
package com.myapp.struts;
public class row {
/** Creates a new instance of Row */
private String name;
private String prenom;
/** Creates a new instance of Row */
public row(String name, String prenom) {
this.name = name;
this.prenom = prenom;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
}

S'il vous plais si qq peut me sauver !je suis vraiment coinçée
merci
remarque : je travaille sur netBeans5.5.1
bonjour

J'éspere vraiment trouver la solution a mon probléme ici, mon probleme est le suivant: ça fait une semaine que j'essai de faire marché tomcat sur eclipse et vu que je suis un adepte du C et des anciens langages de programmation j'ai vraiment eu du mal a le plugué mais surprise il me donne des erreur malgré que j'ai fais toutes les confiuration possible donc je vous laisse admiré la liste des erreur:
Catalina.start: java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence.
java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence.
at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanLiteral(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
at org.apache.catalina.startup.Catalina.load(Catalina.java:566)
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.load(Bootstrap.java:260)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:397)
Catalina.start: java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence.
java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence.
at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanLiteral(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
at org.apache.catalina.startup.Catalina.start(Catalina.java:586)
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:297)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:398)

C' EST la ke ca commence :

16 avr. 2008 09:27:08 org.apache.catalina.startup.Catalina start
INFO: Server startup in 0 ms
java.lang.reflect.InvocationTargetException
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:297)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:398)

Caused by: java.lang.NullPointerException
at org.apache.catalina.startup.Catalina.await(Catalina.java:657)
at org.apache.catalina.startup.Catalina.start(Catalina.java:617)
... 6 more

s'il vous plait si vous avez des idées n'hésitez pas....
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840
/exemplecrm/Cnx fait référence à quoi exactement, peux-tu en dire plus ?
Messages postés
21
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
19 août 2010

Cnx c'est la servlet que login.jsp utilise lors de l'execution je crois que si vous lisez le code vous comprenez plus
merci de votre aide
Messages postés
21
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
19 août 2010

si je ne vais pas vous deranger voila mon msn the_first_l@hotmail.fr
jesper que tu m'ajoute car g besoin de ton aide merci
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840
Ok, peux-tu mettre ici l'ensemble le fichier de config de tomcat (server.xml), ainsi que les fichiers de config du projet (notemment le fichier de config struts puisque c'est ce qui lie normalement tes forms à tes actions, etc.)
Messages postés
21
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
19 août 2010

merci beaucoup
SVP comment je peux les faire merci
j'ai installé netbeans 5.5.1 sur mon poste qui est tourne sous vista
mais il ne prends pas en compte apache même si je rajoute le lien d'apache catalina home etc
il m'affiche tjrs probleme target seveur probleme et il m'affiche rien ç rajouter dans la fenetre pour rajouter les serveur :) je suis dépassée et du cous j'avance pas
cependant je n'ai pas ce probleme sous netbeans 6.1 le deployement du projet se fait .
mais quand je fais rentrer le login et le mot de passe
j(ai l'erreur suivante:
"Etat HTTP 404 - Servlet action n'est pas disponible"
pourtant tout me semble ok
Dans le même genre j'ai dait une expérience bizarre:

J'ouvre le fichier web.xml d'une appliweb qui marche, je modifie la description de l'application web (jajoute un espace) je le supprime et j'enregistre.

Si je fais sous Eclipse ca plante toute l'appli. Si je lefais avec un éditeur de texte tout fonctionne.

Je fais pas ça pour m'amuser c'est le fruit de 3 semaines à pas comprendre pourquoi mes applwebs crées en 2007 ne fonctionnaient plus.

En fait il semble que les gars d'eclipse aient changé leur procédure pour gérer les servlets. Si c'ert lle cas bravo les gars, c'est digne de microsoft.
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840 > john smith
Dans l'informatique il faut souvent se mettre à jour.
On ne peut pas tout réussir non plus du premier coup, d'où une éventuelle refonte du système de gestion comme tu le dis, mais... ça me semble très peu probable, j'ai des applications datant de 2005 et elles fonctionnent toujours, donc je pencherai plus pour un problème de ton coté.
>
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013

Merci de votre réponse.

En fait, c'est assez simple:

installez tomcat (5.5 17 dans ce cas) avec les webapps et les exemples et tout. Ouvrez le web.xml de servlets-examples avec un éditeur de texte quelconque. Fair e une modif (j'ajoute un espace dans un commentaire. Je le supprime. J''enregistre. Je redémarre tomcat et "magic!" tout fonctionne.

faire la même chose avec eclipse tout plante. L'appli est DÉFINITIVEMENTplantée. Si ca dépend pas d'eclipse je me déguise en pere noel.

Sinon, je pense que eclipse (IBM à la base) tente de placer son propre sdk (dans le pacage eclipse) pour tenter d'éclipser java (de sun). C'est même eux qui le disent et c'est pouquoi ils ont choisi ce nom.

Si vous connaissez un bon compilateur qui ne change pas les règles tous les deux ans pour des raisons strictement commerciales je suis ouvert aux suggestions (les versions précédentes d'eclipse, celles qui étaient asse bonne pour ma grand mère, me convenaient. )
bjr tout le monde!!!j'ai un probleme avec mon mini projet;sujet systeme RFID,j'ai besoin d'une application qui marche.je n'ai pas de lecteur RFID.donc j'ai besoin d'une application et une simulateur pour finir mon projet...aidez moi,svp!
Bonjour,

Je voudrai sollicité de l'aide. J'ai installé mon tomcat il marche sans problème, la seule difficulté que j'ai ce que je veux mettre un mot de passe pour sécurisé l'accès au serveur (http://localhost:8080/) j'ai déjà mis un mot de passé pour l'accèder à tomcat Manager.

Merci pour votre aide.
et oui cet environnement Java eclipse web, c-est de la grosse bouse. Vive ASP.NET
celui qui dit Vive ASP.NET ne connais abosulment pas la force de Java
si justement , java cest une bouse immonde
il faut toujour build avant tout execution.