[Webapps][noob]Portage d'une application java en webapps

Portage d'une application java en webapps [Webapps][noob] - Java - Programmation

Marsh Posté le 06-02-2007 à 15:55:42    

Bonjour à tous :)
 
Je travaille actuellement sur le portage d'une application java en webapps
Cette application permet de générer des documents au format pdf, jpeg ... a partir de documents xml. Celle ci fonctionne en ligne de commande.
Mon but serait de faire une page en jsp capable de faire l'équivalent de la ligne de commande (c'est a dire selectionner un fichier xml et un fichier xslt) et de generer les documents correspondants sur le serveur.
Pour cela, j'ai installé tomcat ainsi que le plugin sysdeo pour eclipse.
 
Ma question principale est de savoir s'il est possible de fournir des arguments à une application java à partir d'un jsp ?
Faut il convertir l'application en servlet ? Si oui, quelles sont les pistes à exploiter pour le faire efficacement ?
 
Je vous remercie d'avance pour vos réponses et les pistes que vous pourriez me fournir

Reply

Marsh Posté le 06-02-2007 à 15:55:42   

Reply

Marsh Posté le 06-02-2007 à 16:21:19    

sysdeo ça date de la guerre, passe à WTP, pour commencer.
 
Ensuite, en gros, je suppose qu'il te suffit de faire un page web avec un champ file, et de passer ce file à ta classe de conversion de fichier.
 
note : tu NE veux PAS appeler ton appli java comme en ligne de commandes en lui passant les arguments qui iraient bien.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 06-02-2007 à 16:53:18    

merci pour ta réponse brisssou
je vais jeter un oeil sur wtp.
 
D'apres ce que tu me dis, il n'est pas nécessaire de réecrire mon application comme un servlet afin de pouvoir l'utiliser c'est bien cela ?
 
Par contre je n'ai pas vraiment compris ta note ^^


Message édité par l3eleg le 06-02-2007 à 17:05:21
Reply

Marsh Posté le 06-02-2007 à 18:40:47    

http://www.imagebeaver.com/files/i/f6c/saf45c8bc2a7e247.jpg
Voila mon package explorer, j'ai ajouté les packages contenant les sources de mon application dans le repertoire WEB-INF/src
J'ai ajouté à l'application les JAR nécessaire à son exécution.
 
j'ai ensuite créer le fichier index.jsp suivant :
 

Code :
  1. // On importe les classes d'antidote.
  2. <%@ page import="antidote.*" %>
  3. <%
  4. // on récupère les paramètres
  5. String XML1=request.getParameter("txtXML" );
  6. String XSL1=request.getParameter("txtXSL" );
  7. if(XML1!=null && XSL1!=null) {
  8. //On lance antidote
  9. Antidote obj = new Antidote(XML1,XSL1);
  10. }
  11. %>


 
XML1 et XSL1 correspondent à deux champs de formulaires qui reçoivent un fichier en argument.
Lorsque j'essaye d'accéder au JSP, tomcat retourne l'erreur suivante :
 

Citation :

cause mère
 
org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
 
Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /index.jsp
Erreur de servlet générée:
Antidote cannot be resolved to a type
 
Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /index.jsp
Erreur de servlet générée:
Antidote cannot be resolved to a type


 
Je comprends l'erreur mais je n'en comprends pas la cause. Ya t'il une étape à faire ? j'ai cru comprendre que tomcat compilait les fichiers sources contenus dans WEB-INF/src pour les mettre dans WEB-INF/classes, me trompais-je ? :D
 
Une fois de plus, merci pour vos informations.

Reply

Marsh Posté le 06-02-2007 à 19:01:15    

si je procede comme ca, mes sources doivent etre des servlets c'est bien cela ?
si oui, dois je plutot creer un jar de mon application et l'ajouter à la liste des jar exploitables par la webapps ?

Reply

Marsh Posté le 07-02-2007 à 10:12:50    

HAAAAAAAAAAAAa !!!
 
on se calme !
 
Alors, déjà, ton import est foireux, tu vois bien dans le package explorer que ton package antidote est vide, donc importer antidote.*, ça importe que dalle.
 
Ensuite, c'est pas une jsp que tu jeux faire, mais une servlet. En fait, tu as une jsp où tu précises tes paramètres, et ton formulaire envoie le tout dans une servlet, où tu traites tes paramètres.
 
Pour finir, par rapport à ma note, en fait, il ne faut pas faire un truc genre Runtime.exec("java tonAppli param1 param2" ), mais extraire la logique métier pour l'appeller plutôt comme une classe normale quoi. Mais tu avais l'air de partir là dessus d'après ton code.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 07-02-2007 à 12:06:58    

Merci pour tes eclaircissement, je pense que je vois déjà plus ou il faut mettre les pieds maintenant !
Peut etre d'autres questions d'ici la fin de la semaine, la je n'ai pas le temps d'y toucher aujourd'hui ;)

Reply

Marsh Posté le 19-02-2007 à 18:35:41    

rebonjour ^^
j'ai créé une servlet d'upload de fichiers en me basant sur FileUpload de jakarta et sur un source trouvé sur le net, mon probleme : une erreur 404 sur /gestionupload alors que j'ai défini mon web.xml correctement, je crois. J'ai du oublié quelque chose ^^ Faut il définir l'accès au web.xml quelque part dans tomcat ?
 
 
 
le formulaire :

Code :
  1. <%
  2. // on récupère les valeurs nécessaire à l'affichage
  3. String XML1=(String)request.getAttribute("txtXML" );
  4. String XSL1=(String)request.getAttribute("txtXSL" );
  5. %>
  6. <html>
  7. <head>
  8.  <title>Antidote</title>
  9. </head>
  10. <body>
  11.  <center>
  12.   <h2>Antidote</h2>
  13.   <hr>
  14.    <form name="myform" action="/gestionupload" method="post" enctype="multipart/form-data">
  15.         <label for="xml_file">Indiquez le fichier XML à uploader</label><br />
  16.         <input type="file" name="xml_file" id="xml_file" /><br />
  17.         <label for="xsl_file">Indiquez le fichier XSL à uploader</label><br />
  18.         <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
  19.         <input type="file" name="xsl_file" id="xsl_file" /><br />
  20.         <input type="submit" name="submit" value="Envoyer" />
  21.    </form>
  22.   </form>
  23.  </center>
  24. </body>
  25. </html>


Message édité par l3eleg le 20-02-2007 à 09:10:01
Reply

Marsh Posté le 20-02-2007 à 09:21:51    

ca y est j'arrive a contacter la servlet, un simple soucis de syntaxe dans le formulaire ^^
 
par contre, je rencontre l'erreur suivante, malgré toutes les librairies qui vont bien, quelqu'un connait il cette erreur ?
 

Code :
  1. type Rapport d'exception
  2. message
  3. description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
  4. exception
  5. javax.servlet.ServletException: L'exécution de la servlet a lancé une exception
  6. cause mère
  7. java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
  8. org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:179)
  9. org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
  10. org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
  11. org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
  12. UploadServlet.doFileWrite(UploadServlet.java:81)
  13. UploadServlet.doGet(UploadServlet.java:48)
  14. UploadServlet.doPost(UploadServlet.java:57)
  15. javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
  16. javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  17. note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.20.


 
la ligne correspondante :
   items = upload.parseRequest(request);
 
 
Bonne journée à tous !

Reply

Marsh Posté le 20-02-2007 à 10:01:28    

ben donc non, y a pas toutes les librairies qui vont bien. cf topic pour débutant et tout ce que vous avez toujours voulu savoir sur le classpath


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 20-02-2007 à 10:01:28   

Reply

Marsh Posté le 20-02-2007 à 13:18:03    

ouaip en effet c'est réglé ^^
merci encore !

Reply

Marsh Posté le 22-02-2007 à 21:40:37    

j'ai une autre question a vous soumettre si vous me le permettez,
je suis actuellement en train d'essayer d'afficher un formulaire contenant une liste de lien pointant vers des fichiers, pour ca j'ai créé une classe qui les liste et je l'ai ajoutée à mon jar d'application.
Je fais appel a ses méthodes au sein de mon formulaire jsp, mais ca ne fonctionne pas, ou mal.
 
voici le debut du code :

Code :
  1. <%@ page import="java.io.*, java.util.*, antidote.webadds.FilesFinder" %>
  2. <%
  3. // on récupère les valeurs nécessaire à l'affichage
  4. String XML1=(String)request.getAttribute("xml_file" );
  5. String XSL1=(String)request.getAttribute("xsl_file" );
  6. antidote.webadds.FilesFinder fichiers = new antidote.webadds.FilesFinder("c:/java/softwares/tomcat/webapps/ANTITODE/uploaded/" );
  7. fichiers.sortFilesRec(fichiers.allFiles,"xml",fichiers.Output);
  8. %>


 
et la partie qui me concerne :
quelques précisions : Output est un ArrayList renvoyé par ma classe qui contient la liste des fichiers du type que je souhaite mettre dans le formulaire, je split ensuite la chaine pour n'afficher que le nom du fichier, le probleme que je rencontre est etrange, soit j'ai une erreur 500 à la ligne 32 c'est a dire au <%, soit la page s'affiche mais dans une ancienne version du code ...

Code :
  1. <form name="" action="" method="post">
  2.     <select name="liste_XML">     
  3.     <%
  4.     String Temp;
  5.        String[] Temp_2;
  6.     for(int i=0;i<fichiers.Output.size();i++) {
  7.      Temp=fichiers.Output.get(i).toString();
  8.        Temp_2=Temp.split("\" );
  9.      out.println("<option value=\""+fichiers.Output.get(i)+"\">"+Temp_2[Temp_2.length-1]);
  10.     }
  11.     %>
  12.     </select>
  13.     <select name="liste_XML">     
  14.     <%
  15.     fichiers.sortFilesRec(fichiers.allFiles,"xsl",fichiers.Output);
  16.     for(int i=0;i<fichiers.Output.size();i++) {
  17.      Temp=fichiers.Output.get(i).toString();
  18.        Temp_2=Temp.split("\" );
  19.      out.println("<option value=\""+fichiers.Output.get(i)+"\">"+Temp_2[Temp_2.length-1]);
  20.     }
  21.     %>
  22.     </select>
  23.    </form>


 
 
Une fois de plus je vous remercie de vos pistes, ca me permet vraiment d'avancer a grands pas ^^

Reply

Marsh Posté le 24-02-2007 à 13:11:13    

autant pour moi, j'ai trouvé l'erreur tout seul ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed