Question pratique - Servlet

Résolu
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 12 juil. 2007 à 10:03
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 12 juil. 2007 à 18:58
Bonjour,
je réalise un application en C dans laquelle je me connecte a un serveur distant, afin de récupérer des données sur une servlet codée en Java via des requete http basiques...
Jusque là rien d'extraordinaire
Cependant maintenant que coté client le C est terminé, on me demande de modifier la servlet afin de faire des enchainement d'ecrans...
D'où ma question : ma servlet ( le fichier TEST.class) se trouve dans un repertoire donné de mon serveur distant. Comment dois-je procédé pour pouvoir la modifier?
Dois-je simplement récupérer le fichier TEST.java, faire mes modif', puis compiler. Et enfin avec le nouveau TEST.class que j'obtindrais, je remplace l'existant par le nouveau?
Cela fonctionne-t-il aussi simplement ou y-aura-t-il d'autres modifs à faire?

Merci à vous
( de plus, n'ayant que le fichier TEST.java a priori a modifier, quel compilateur me conseiller vous sous Windows XP? un simple javac devrais suffire?)

11 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
12 juil. 2007 à 10:34
Salut,

normalement ou il te suffit simplement de remplacer l'ancien .class par le nouveau...
Concernant le compilateur tu fais du java donc seul le jdk de sun suffit et ta compilation ne peut se faire avec autre chose que javac sauf si tu fais un java hybride (java sauf crosoft)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
12 juil. 2007 à 11:51
il te faut le JDK J2EE et pas le J2SE  prend le plus recent ;o) c est souvent le mieu à faire .... ;o)

GodConan ;o)
3
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 17:19
Plus qu'une erreur, mais la je seche!! ( je re signale que c'est une servlet qui a déjà été compilé sur le serveur distant, elle doit donc en théroie bien compiler... Je teste la compilation de mon côté pour pouvoir la modifier par la suite en toute sérénité! ^^)
Donc voilou, il me reste ça :
PDA_New.java:32: cannot find symbol
symbol : method init();
location : clas java.lang.Object
                      super.init();
                              ^

Voici le fichier java :
package gencdf.mobile.servlet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class PDA_New
{
    public PDA_New(){
    }
    public void doPost(javax.servlet.http.HttpServletRequest req,javax.servlet.http.HttpServletResponse resp)throws javax.servlet.ServletException, java.io.IOException    {
        String retour = "";
        try {
            retour = litFichier();
            resp.getWriter().print(retour);
            resp.getWriter().close();
        }
        catch(java.lang.Exception exception) { }
    }

    public void init()
        throws javax.servlet.ServletException
    {
        super.init();
    }

    private String litFichier() {
        String valRet = "";
        try {
            String cheminTp = "/tmp/PDA_New_retour.txt";               
            File f = new File(cheminTp);
            if (f.length() > 0) {
                BufferedReader in = new BufferedReader(new FileReader(cheminTp));
                valRet = in.readLine();
                in.close();                   
            }
        } catch (Exception e) {
        }
        return valRet;
    }   
}

Voila, si quelqu'un a une idée, j'en aurais terminé avec ces problemes...
 Merci beaucoup!!

Pour info, la résolution aux autres problemes venaient qu'il falalit le classpath pour compiler :
javac -classpath "chemindujar:servlet.jar"  PDA_NEW.java
3
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
12 juil. 2007 à 10:34
le compilateur de sun est largement suffisant... et quelque soit l OS... il te suffit donc de compiler ton .java pour obtenir ton .class qui remplacera le fichier actuel ....

GodConan ;o)
0

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

Posez votre question
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 10:47
Ouah la rapidité
Donc oui je vais tenter ca. J'ai telecharger la jdk de sun, mais j'ai pris la 1.4.2, or pour qu'elle fonctionne avec Apache Tomcat, me faut la 5.0 non? je vais voir pour la télécharger.
Et sinon, je possède les jar pour APache, commet pourrais-je les "intégrer" à mon javac pour ne pas avoir d'erreurs a la compilation?
Merci beaucoup!
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 12:17
Ok je telecharge le J2EE sdk 1.4 là
mais ensuite les lib d'apache seront deja integrées? devrais-je faire quelque chose a la main?
ce JDEE sdk comportera bien une option "javac"

Désolé je suis un peu perdu dans tout ça
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
12 juil. 2007 à 13:03
Tu verras bien .... ;o) javac n est pas une option ... c est le nom du pseudo-compilateur

GodConan ;o)
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 juil. 2007 à 14:49
le plus recent c'est pas forcement un bon plan ... faut que tu prenne la meme version que le java d'installe sur la machine ...

le JEE == (JDK + LIB )
avec LIB == javax.mail , ejb etc ....
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 15:39
Ok donc j'ai installé le J2EE,
ensuite dans cmd, je fais "cheminJ2EE\bin\javac.exe" PDA_New.java

et j'obtiens toujours 5 erreurs, dont 3 identiques.
Les voici :




C:\Documents and Settings\PC_STG\Bureau\RECUP\Recup Winscp>"c:\Sun\AppServer\jdk
\bin\javac.exe" PDA_New.java
PDA_New.java:10: cannot access javax.servlet.http.HttpServlet
file javax\servlet\http\HttpServlet.class not found
public class PDA_New extends gencdf.mobile.servlet.PDA_Config
       ^
PDA_New.java:16: package javax.servlet.http does not exist
        public void doPost(javax.servlet.http.HttpServletRequest req, javax.serv
let.http.HttpServletResponse resp)
                                             ^
PDA_New.java:16: package javax.servlet.http does not exist
        public void doPost(javax.servlet.http.HttpServletRequest req, javax.serv
let.http.HttpServletResponse resp)

        ^
PDA_New.java:17: package javax.servlet does not exist
                throws javax.servlet.ServletException, java.io.IOException
                                    ^
PDA_New.java:32: cannot find symbol
symbol  : variable super
location: class gencdf.mobile.servlet.PDA_New
                super.init();
                ^
5 errors






Donc voila, il me semble que 4 erreurs sont dûes au fait qu'il ne trouve pas les lib Apache ( j'ai récupéré un tomcat également, essayé de changé les classpath mais je dois mal m'y prendre...)
et la derniere je ne comprends pas pourquoi elle ne passe pas...

Snif, help SVP, je vais péter un cable...
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
12 juil. 2007 à 18:03
je ne connai pas de methode init à Object le super.init() me semble plus que douteux
soit il y avait un extend à la class soit la ligne est en trop ...

GodConan ;o)
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 18:58
Oui en effet, j'avais bien un extends qui me faisait une autre erreur. et le init() dans ce cas me donne une erreur relative à cet extends.
donc au final je pense soit rajouter le extends et peut etrre arriver a retablir le lien avec la classe à laquelle il fait référence, soit je vire le init(), qui ne doit pas avoir tant d'incidence que cela...

Quoi qu'il en soit, merci a tous pour votre aide, je vais mettre en résolu cequi m'a paru le plus utile
Bonne soirée, et vive le java!
0
Rejoignez-nous