IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Débutant cherche solution


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut Débutant cherche solution
    Bonjour,

    jessaie de de faire une petite application ou le client donne un chemin d'un fichier word puis une servlet s'occupe d'extraire les donnees du fichier et les remettre dans une autre jsp
    voici mon code
    index.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <%@ 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>
    <title>Chemin</title>
    </head>
    <body>
    <center>
    <h2>Chemin</h2>
    <hr>
    <form action="ServletExtract" method="post">
    <table>
    <tr>
    <td>Chemin</td>
    <td><input name="chemin" value="" type="text" size="20"></td>
    </tr>
    </table>
    <table>
    <tr>
    <td><input type="submit" value="Envoyer"></td>
    <td><input type="reset" value="Retablir"></td>
    <td><input type="button" value="Effacer"></td>
    </tr>
    </table>
    </form>
    </center>
    </body>
    </html>
    ma servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		String chemin = request.getParameter("chemin");
    		String filesname = chemin;
    		POIFSFileSystem fs = null;
    		try
    		{
                      fs = new POIFSFileSystem(new FileInputStream(filesname)); 
     
                      HWPFDocument doc = new HWPFDocument(fs);
     
    		  WordExtractor we = new WordExtractor(doc);
     
    		  paragraphs = we.getParagraphText();
     
    		  System.out.println( "Word Document has " + paragraphs.length + " paragraphs" );
    		  for( int i=0; i<paragraphs .length; i++ ) {
    			paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n","");
    			        System.out.println("Le paragraphe "+i+" est : "+paragraphs[i]+" : ");
                    	System.out.println( "Length:"+paragraphs[ i ].length());
    		  }
                    }
                    catch(Exception e) { 
                        e.printStackTrace();
                    }
                    request.setAttribute("chemin",paragraphs);
                    getServletContext().getRequestDispatcher("/formulaire2.jsp").forward(request,response);
     
    	}
    formulaire2.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <%@ 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">
    <%
    // on récupère les valeurs nécessaire à l'affichage
    String chemin = (String)request.getAttribute("chemin");
    //String age=(String)request.getAttribute("age");
    %>
    <html>
    <head>
    <title>Personne - formulaire</title>
    </head>
    <body>
    <center>
    <h2>Personne - formulaire</h2>
    <hr>
    <form action="" method="post">
    <table>
    <tr>
    <td>Chemin</td>
    <td><input name="chemin" value="<%= chemin %>" type="text" size="20"></td>
    </tr>
    <tr>
    <td>Age</td>
    </tr>
    </table>
    <table>
    <tr>
    <td><input type="submit" value="Envoyer"></td>
    <td><input type="reset" value="Rétablir"></td>
    <td><input type="button" value="Effacer"></td>
    </tr>
    </table>
    </form>
    </center>
    </body>
    </html>
    et voici l'erreur generee:
    javax.servlet.ServletException: L'exécution de la servlet a lancé une exception

    cause mère

    java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/POIFSFileSystem
    ServletExtract.doPost(ServletExtract.java:48)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    cause mère

    java.lang.ClassNotFoundException: org.apache.poi.poifs.filesystem.POIFSFileSystem
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ServletExtract.doPost(ServletExtract.java:48)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  2. #2
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Bonsoir,

    Apparemment, ton probleme vient de l'integration de l'api (POI) que tu utilises.

    As tu bien importer tous les jars dans ton appli ?

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    oui j'ai tt importé

    vous trouvez que mon code est correcte???

  4. #4
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    J'ai regarde rapidement votre code ( il commence à se faire tard ^^) et ca m'a l'air correct.

    Donc si l'importation de semble pas être votre soucis, je me mettrais sur votre probleme en testant votre application, mais je ferais ca demain.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    en fait au début j'ai executé ma classe comme une application java normale avant de proceder a l'appliquer en tant qu'application web et ça a mmarcher a merveille

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    ok merci cp à demain

  7. #7
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Je viens de faire un test rapide.

    Est il possible que vous puissez mettre tout le code votre servlet afin que je puisse savoir a quelle importation correspond le paragraphs et savoir exactement les declarations.

  8. #8
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    voici ma servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    import java.io.*;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.poi.hwpf.HWPFDocument;
    import org.apache.poi.hwpf.extractor.WordExtractor;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
     
    /**
     * Servlet implementation class ServletExtract
     */
    public class ServletExtract extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           String[] paragraphs;
        /**
         * @see HttpServlet#HttpServlet()
         */
     
           public void init(ServletConfig config) throws ServletException {
       		// TODO Auto-generated method stub
       	}
        public ServletExtract() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doPost(request,response);
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		String chemin = request.getParameter("chemin");
    		String filesname = chemin;
    		POIFSFileSystem fs = null;
    		try
    		{
                      fs = new POIFSFileSystem(new FileInputStream(filesname)); 
     
                      HWPFDocument doc = new HWPFDocument(fs);
     
    		  WordExtractor we = new WordExtractor(doc);
     
    		  paragraphs = we.getParagraphText();
     
    		  System.out.println( "Word Document has " + paragraphs.length + " paragraphs" );
    		  for( int i=0; i<paragraphs .length; i++ ) {
    			paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n","");
    			        System.out.println("Le paragraphe "+i+" est : "+paragraphs[i]+" : ");
                    	System.out.println( "Length:"+paragraphs[ i ].length());
    		  }
                    }
                    catch(Exception e) { 
                        e.printStackTrace();
                    }
                    request.setAttribute("chemin",paragraphs);
                    getServletContext().getRequestDispatcher("/formulaire2.jsp").forward(request,response);
     
    	}
    	}

  9. #9
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    bonjour
    j'ai placé les jars de POI dans le repertoire webinf\lib
    mainteneant l'erreur est la suivante

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

    exception

    java.lang.NullPointerException
    javax.servlet.GenericServlet.getServletContext(GenericServlet.java:160)
    ServletExtract.doPost(ServletExtract.java:67)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    une idée???

  10. #10
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Bonjour,

    dans ton code mets plutot ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            try {
     
                    Traitement de ta servlet
     
     
             }
     
     
     
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
        }
     
     
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
        }

  11. #11
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    salut
    merci pour votre reponse
    voici ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
     
    import java.io.*;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.poi.hwpf.HWPFDocument;
    import org.apache.poi.hwpf.extractor.WordExtractor;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
     
    /**
     * Servlet implementation class ServletExtract
     */
    public class ServletExtract extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           String[] paragraphs;
        /**
         * @see HttpServlet#HttpServlet()
         */
     
           public void init(ServletConfig config) throws ServletException {
       		// TODO Auto-generated method stub
       	}
        public ServletExtract() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
     
    try {
     
    	String chemin = request.getParameter("chemin");
    	String filesname = chemin;
    	POIFSFileSystem fs = null;
    	try
    	{
                  fs = new POIFSFileSystem(new FileInputStream(filesname)); 
     
                  HWPFDocument doc = new HWPFDocument(fs);
     
    	  WordExtractor we = new WordExtractor(doc);
     
    	  paragraphs = we.getParagraphText();
     
    	  System.out.println( "Word Document has " + paragraphs.length + " paragraphs" );
    	  for( int i=0; i<paragraphs .length; i++ ) {
    		paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n","");
    		        System.out.println("Le paragraphe "+i+" est : "+paragraphs[i]+" : ");
                	System.out.println( "Length:"+paragraphs[ i ].length());
    	  }
                }
                catch(Exception e) { 
                    e.printStackTrace();
                }
     
                request.setAttribute("chemin",paragraphs);
                getServletContext().getRequestDispatcher("/formulaire2.jsp").forward(request,response);
     
     
     
     
        }
        }
     
     
     
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
    }
     
     
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
    }
    }
    j'ai une erreur de compilation comme quoi il manque une accolade de fermeture alors que je crois que c'est bon non??

  12. #12
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    A la fin de processrequest, il y a deux accolades.

    Il faut en supprimer une.

  13. #13
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    vraiment je me suis planté!!!
    vous pouvez menvoyer votre code svp!!

  14. #14
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Bonjour,

    Je viens d'essayer le code.

    Même en passant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    POIFSFileSystem fs = new POIFSFileSystem();
     
    fs.createDocumentInputStream(filesname);
    Ceci me retourne une erreur.
    Ceci vient de la librairie POIFSFileSystem.

    Donc à voir avec cette librairie spécifique.

  15. #15
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    le problème c'est que c'est que j'ai essayé ma classe en tant que classe java et ca à marcher. bizarre!!!

  16. #16
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Effectivement, ceci est bizarre après il faut voir du coté de apache.

    Mais si tu as une réponse à ceci, pourrais tu me la faire parvenir.

    Merci d'avance,

  17. #17
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    Oui bien sur sinon je compte sur vous si vous trouvez une solution ou une autre idée

  18. #18
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    svp est-ce que vous pouvez m'expliquer les lignes de codes que vous avez ajouté??

  19. #19
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Le code que je vous ai mis permet simplement de reunir les methodes get et post en une seule fonction et d'obtenir ainsi dans n'importe quel cas un seul traitement.

    Autrement dit, si vous envoyez une requete par get ou par post, le traitement sera le meme.
    Ceci evite de reecrire le code dans la methode get ou post en fonction de se qu'on envoi.

  20. #20
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    d'accord merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] cherche vcl.h
    Par Seb87 dans le forum C
    Réponses: 4
    Dernier message: 04/01/2006, 14h08
  2. erreur non comprise cherche solution
    Par debC++ dans le forum C++
    Réponses: 12
    Dernier message: 17/06/2005, 16h11
  3. Réponses: 2
    Dernier message: 29/04/2005, 09h32
  4. [Débutant] Bonne solution ?
    Par Machjaghjolu dans le forum Débuter
    Réponses: 23
    Dernier message: 17/09/2004, 09h51
  5. [débutant] cherche a copier une HashMap
    Par mathieublanc13 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/05/2004, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo