Probleme test de servlet simple

2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006 - 6 avril 2006 à 15:19
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006 - 5 mai 2006 à 08:43
Bonjour
Je viens de créer mon premier servlet.Je code sous Jbuilder2 et utilise tomcat 5.5

j'ai donc créé dans C:Doc&setting->tomcat->webapps
un dossier "monhelloworld"dans lequel se trouve : "WEB-INF" qui comprend un autre dossier "classes" et un fichier "web.xml".
J ai mis le .class (Servlet1.class)et le .java(Servlet1.java) dans le dossier "classes".

Voici le codage :

Servlet1.java

package elloworld;


import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;


public class Servlet1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>ma première Servlet</title></head>");
out.println("<center>");
out.println("Salut tout le monde !!!");
out.println("
</center></html>");
}
}

fichier web.xml :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app 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"
version= "2.4">
<display-name>monhelloworld</display-name>
<servlet>
<servlet-name>elloworld</servlet-name>
<servlet-class>Servlet1</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>elloworld</servlet-name>
/mytest
</servlet-mapping>

</web-app>



Et finalement pour tester je fais :

http://localhost:8080/monhelloworld/Servlet1http://localhost:8080/monhelloworld/Servlet1

cela m'affiche sur le navigateur :


Etat HTTP 404 - /monhelloworld/Servlet1

<HR noShade SIZE =1>

type Rapport d'état


message /monhelloworld/Servlet1


description La ressource demandée (/monhelloworld/Servlet1) n'est pas disponible.


<HR noShade SIZE =1>

Apache Tomcat/5.5.16

Y aurait-il quelqu'un pour me se qu'il ne va pas ?
merci d'avance.
ps:tomcat est bien lancé .

20 réponses

bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 15:55
coucou,

essaye :
/servlet/monHello.../Servlet1
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
6 avril 2006 à 16:39
merci 172771 bloofi mais cela ne marche pas non plus.

Je viens de créer un mini formulaire qui appele le helloworld de l'exemple chez tomcat:
<html>

<form action =http://127.0.0.1:8080/servlets-examples/servlet/HelloWorldExample method= "GET">

</form>
</html>
ce qui marche parfaitement.
Mais des que j'y intègre mon url comme ceci :
<html>

<form action=http://127.0.0.1:8080/monhelloworld/servlet/Servlet1
method="GET">

</form>
</html>

je viens d'essayer mais ca ne marche toujours pas cette fois ci il me met une erreur comme cela

Etat HTTP 500 -

<HR noShade SIZE=1>

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: Erreur d'allocation à une instance de servlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Unknown Source)




cause mère java.lang.NoClassDefFoundError: Servlet1 (wrong name: elloworld/Servlet1)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1812)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:866)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1319)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Unknown Source)




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


<HR noShade SIZE =1>

Apache Tomcat/5.5.16


je ne vois pas ou je fais l'erreur.
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 16:44
java.lang.NoClassDefFoundError: Servlet1 (wrong name: elloworld/Servlet1)

wrong name : elloworld

erreur de copier/coller ?
0
frank_sauvage Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 9 avril 2006
6 avril 2006 à 16:52
coucou,



petite question stupide :

package elloworld et class Servlet1



ma question :

tu fais classes/Servlet1.class ?

ou classes/ellworld/Servlet1.class ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
6 avril 2006 à 23:23
oui mauvais copier collé
je fais cela : http://127.0.0.1:8080/elloworld/servlet/Servlet1
et ca ne marche toujours pas
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 23:40
ta pas mis de 'h' à "helloworld" ?

et si tu fais :
http://127.0.0.1:8080/servlet/http://127.0.0.1:8080/elloworld/servlet/Servlet1elloworld/Servlet1
0
frank_sauvage Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 9 avril 2006
6 avril 2006 à 23:49
re..



je repose ma question..car il semble que le classloader n'arrive pas a charger la classe coté tomcat



dans le WEB-INF

tu as mis la classe compilée dans

classes/Servlet1.class ?

ou classes/elloworld/Servlet1.class ?

je ne parle pas ici de la maniere dont tu l'appelles, mais de la maniere dont tu stockes la classes.



si tu as mis classes/Servlet1.class, ca ne marchera pas car il y a une mauvaise correspondance avec le nom de package...

et ca doit normalement dans ce cas generer une erreur du type de celle que tu as



voili

FSA;
0
cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009
7 avril 2006 à 12:26
Bonjour !
vérifie aussi ce que tu as écrit dans le web.xml

<web-app>
<display-name>Le Nom à Afficher</display-name>
<description>
Petite description de la web-app
</description>

<servlet>
<servlet-name>Le nom de la servlet</servlet-name>
<description>
Petite description de la servlet
</description>
<servlet-class>package.NomClass</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>NomServlet</servlet-name>
/CheminWeb
</servlet-mapping>
</webapp>

Si tu as mis ta classe Servlet1 dans le dossier "WEB-INF/classes/Servlet1.class" tu dois mettre la balise
<servlet-class>Servlet1</servlet-class>
Sinon si tu l'as mise dans le dossier "WEB-INF/classes/elloworld/Servlet1.class" tu dois mettre la balise
<servlet-class>elloworld.Servlet1</servlet-class>

Bon courage.
Petitemainate

oO0OoO0Oo ><)))°> oO0OoO0OoO0Oo
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
7 avril 2006 à 16:16
re [172771 bloofi] ton url ne fonctionne pas dsl.merci quand meme !!

re [=491159 frank_sauvage] oui j'ai stoké ma servlet dans "C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\monhelloworld\WEB-INF\classes"
et dans ce fichier "classes" j ai mis le Servlet1.java et le Servlet1.class
J'espère que cela répondre à ta question ??
re [petitemainate] merci pour cette précision .Je vais y regarder...
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
8 avril 2006 à 17:09
aucun changement ... [petitemainate] merci quand meme !!
y a t-il quelqu'un qui a deja fait fonctionner un servlet avec Apache Tomcat 5.5.16 et le jre1.5.0_06 ??
car mon problème dois probablement venir de la .
0
cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009
11 avril 2006 à 16:12
hum... désolée, je travaille avec la version 4.1 ... et j'ai pas regardé si ça change ou pas en version 5...

oO0OoO0Oo ><)))°> oO0OoO0OoO0Oo
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
11 avril 2006 à 21:59
je pense que le problème vient de JBuilder 2 !
car quand je compiles une application rien ne se passe (une feneter dos s'ouvre et se ferme automatiquement sans réel changement)
et pour la compilation d'un servlet le fichier .html ne change aucunement de la page html initial a la création de la servlet.
Tandis que sur le 6 il se passe une vrai compilation avec détails pour les application(je n'ai pas la licence pour faire des servlet->Jbuilder6 personal).
Leproblème viedrait-l de JBuilder et des compilation des fichiers ?
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
11 avril 2006 à 22:02
La solution serait de ne plus utiliser JBuilder :D
0
cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009
12 avril 2006 à 13:00
Eclipse est ton ami

oO0OoO0Oo ><)))°> oO0OoO0OoO0Oo
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
12 avril 2006 à 18:22
eclipse est-il gratuit car le lycée veux pas que j'instale de logiciels payant ou cracké.
Eclipse est beaucoup plus différent de JBuilder ou pas ?
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
12 avril 2006 à 18:23
Où puis-je le download ?
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
12 avril 2006 à 18:35
oui il est gratuit et assez différent de JBuilder mais on s'y retrouve ^^ , tu peux le télécharger la :

http://www.eclipse.org/downloads/
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
12 avril 2006 à 19:05
mais l'installation de ce logiciel ne va pas créer un conflit avec les installation au niveau du jdk et du jre en concordance avec tomcat et JBuilder ?
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
12 avril 2006 à 19:39
non
dans eclipse pour chaque projet (project > propertie) tu peux specifier quel jdk ou jre à utiliser
0
2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006
5 mai 2006 à 08:43
résolu : petite erreur dans le web.xml
+ ne pas mettre de package dans le .java
@ bientot
0
Rejoignez-nous