2010-01-20 5 views
2

J'écris ma première application Java EE, en utilisant des EJB, Servlet, JSP et autres.
J'utilise JBOSS 4.2 AS et Eclipse as et IDE, y compris des tâches telles que démarrer et arrêter le serveur.Enregistrement de la demande de publication de servlet sur la console Eclipse

Ce que je ne comprends pas que des instructions lors de la connexion à l'intérieur d'un jsp, comme:

<% System.out.println("Log this!"); %> 

journal comme prévu, à la fois dans la console Eclipse et $SERVER_HOME/server/default/log/server.log, toute sorte d'instruction de l'exploitation forestière je l'ai essayé à l'intérieur une servlet échoue.

Voici le code de l'jsp qui appelle la servlet:

<form action="MyServlet" method="POST" accept-charset="utf-8"> 
    <input type="text" name="id" value="" id="id"> 
    <input type="submit" value="Go &rarr;"> 
</form> 

Et bien sûr, le servlet mmêe:

public class MyServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    public MyServlet() { 
     super(); 
     System.out.println("Hi, I'm your servlet's constructor"); 
    } 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     System.err.println("Hi, this is your servlet on system.err"); 
     System.out.println("Hi, this is your servlet on system.out"); 
     System.out.println(request); 
     ServletContext sc = getServletContext(); 
     sc.log("Hi, this is your servlet on servlet context!"); 
    } 
} 

Est-ce que je manque quelque chose évidente? Faire tout faux, ou simplement regarder au mauvais endroit?

Répondre

1

Si vous ne voyez rien dans stdout/stderr, cela signifie simplement que la servlet n'a pas été exécutée. Cela peut avoir beaucoup de causes triviales. La servlet est-elle dans le classpath? La servlet est-elle définie au web.xml ou annotée avec @WebServlet? Est-ce que le url-pattern est correct? L'URL de la demande couvre-t-elle? Que dit le débogueur Eclipse? Que disent les journaux du serveur d'applications?

En passant, ce n'est pas réellement la journalisation. C'est simplement écrire sur stdout/stderr. La journalisation est plus que cela.

+0

Merci pour le commentaire. Le servlet * était en cours d'exécution, mais n'était pas à jour. Une republication complète a abouti à * tout * l'instruction de travail un charme. – Agos

3

Je viens de créer un servlet factice que je Déployé sur JBoss 4.2.3 et en utilisant System.out.println sorties dans la console Eclipse et server/default/log/server.log je ne peux pas reproduire votre problème. Il doit y avoir quelque chose d'autre qui ne va pas. Cela étant dit, je ne recommande pas d'utiliser System.out ou System.err, en particulier si vous utilisez un conteneur Java EE. Au lieu de cela, vous devez utiliser un cadre de journalisation (Don't Use System.out.println!) et je suggère d'utiliser logback (le successeur de log4j).

+0

+1 pour la suggestion utile de "consignation correcte". – Agos

Questions connexes