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

Applets Java Discussion :

[Applet][Exec programme] Est ce possible sur un serveur ?


Sujet :

Applets Java

  1. #1
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut [Applet][Exec programme] Est ce possible sur un serveur ?
    Bonjour,

    j'ai créé une applet utilisable donc sur internet. Je l'ai fait communiquer avec une servlet sur un serveur Tomcat.

    Je voudrais savoir si, d'après vous, il est possible de, à l'aide de l'applet, faire exécuter un programme sur un serveur (donc invisible pour l'utilisateur qui travaille sur l'applet) ??

    Je m'explique mieux. Une interface Java a été créé (elle fonctionne parfaitement). Cette interface, qui contient de nombreuses classes, permet de renvoyer à l'utilisateur s'en servant, une image contenant des sigles (pas important pour la question).
    Cette interface se trouvera sur le serveur qui "hébergera" la servlet (surement un serveur Tomcat). Pour le moment, cette interface n'est pas sur le serveur Tomcat que j'utilise pour voir le fonctionnement de la communication entre mon applet et ma servlet.

    Et ma question est : Est -il possible, par le biais de mon applet, de lancer cette interface sur le serveur Tomcat et ensuite de récupérer le résultat, que donne l'exécution de l'interface , sur l'applet (en fait, de visualiser ce résultat sous une forme quelconque). ???

    Si vous n'avez pas tout compris, je vous réexpliquerais avec plaisir
    Venez nombreux sur ce forum, il est génial !!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    heu si j'ai bien compris tu veux lancer une application coté serveur jusque la tout va bien !!

    Mais j'ai cru comprendre que cette application possede une interface et que tu veux voir cette interface coté client ???

    Faudrais en faire une image de ton interface puis transferer ton image !!
    Il faudrais que l'appli qui tourne sur le serveur créé une fichier resultat (par exemple une image ) et que le resultat sois transporté vers l'applet qui afficherai comme bon lui semble les info presentes dans le fichier resultat !!
    sinon je voi pas comment faire

    En meme temps j'ai peut etre rien compris
    UML avec VIOLET

  3. #3
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    En fait, je suis en train de faire un projet.
    Voici les bases de ce projet :
    - il existe une plateforme (interface) qui permet à un utilisateur de faire des traitements d'imagerie sur un fichier (pdf, tiff,jpeg, etc...).
    Ces traitements sont en Java, C, C++, etc...
    En fait, l'utilisateur donne un fichier à la plateforme (le tout est du local, pas d'internet), et cette dernière renvoie après application des traitements le résultat dans une fenetre (interface développé en Java).
    Ce résultat est en fait le réaffichage du fichier que l'utilisateur a donné dans lequel il est possible de cliquer pour avoir des infos sur telle ou telle image ou tel ou tel texte contenu dans le fichier. Ce résultat est visible dans une fenetre Java.

    Mon projet a pour but de porter cette plateforme sur internet pour etre utilisé par tout le monde. Pour celà, j'ai créé une applet qui reprend en gros la plateforme. j'ai créé une servlet qui me permet de faire communiquer l'applet et le serveur. Et maintenant, je cherche à trouver des solutions pour que mon applet lance la plateforme coté serveur , que la plateforme exécute les traitements demandés et ensuite que le serveur renvoie à l'applet la fenêtre java (la même que la plateforme) pour que l'utilisateur sur internet puisse voir le résultat des traitements.

    Voilà. Je pense avoir été clair cette fois ci !!!

    Venez nombreux sur ce forum, il est génial !!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    WOUA la comme ca je dirais que c chaud !!!
    tu veux pas recuperer une image ou un simple fichier mais carrement toutes une interface c'est a dire des JPanel et autre Listener ???
    Donc le truc c une communication du style :

    Applet :voici mon image: fichier.img
    Servlet :ok je lance mon machin de traitement d'image
    Servlet : c fini je te donne l'interface
    Applet :ok j'affiche
    Applet : c bon ca marche !!

    Heu je pense que le mieux est de transformer ton appli java qui est le resultat de la manip du serveur en Applet !!! cette appli java comment est elle construite j'imagine que une appli C++ fais le traitement d'image et communique via un ou pliseurs fichier les resultat de ce traitement et lance l'application java avec en paremetre le ou les fichier !!!

    bon d'accord je specule bcp c peut etre pas du tout ca !!
    Mais si c ca c plus simple car tu n'aurais plus qu'a transferer les fichier vers l'applet et l'applet ferais sont boulot a partir de ces fichier!!

    Sinon pour transferer des objets entier java bah c RMI !!!
    tu mets l'instance de l'objet a transferer dans le serveur RMI (contenu dans le JDK) et puis tu le recupere sur l'applet (attention peut etre besoins de signer l'applet) enfin je suis pas un pro RMI meme si ca m'a l'aire sympas comme techno

    La c'est moi qui suis pas sur d'etre tres clair
    UML avec VIOLET

  5. #5
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Ouai,c ca,

    Tu as seulement été trop rapide à m'expliquer.
    Qaudn tu dis :
    tu veux pas recuperer une image ou un simple fichier mais carrement toutes une interface c'est a dire des JPanel et autre Listener ???
    Oui il me faut le tout. Je ne veux pas spécialement récupérer. S'il le faut, je peux la récréer cette fenêtre java avec le résultat mais il faut quand même que je le fasse à partir du résultat de l'appli qui tourne sur le serveur.

    Pour la communication, ca donnerait un truc du genre :
    Applet : voici mon fichier
    Applet - Servlet : communication
    Servlet : lance l'appli sur le serveur
    Servlet : récupération ou création du résultat
    Servlet - Applet : communication
    Applet : affiche le résultat (qui est identique à celui qui est le serveur)

    Tu me dis :
    Heu je pense que le mieux est de transformer ton appli java qui est le resultat de la manip du serveur en Applet !!! cette appli java comment est elle construite j'imagine que une appli C++ fais le traitement d'image et communique via un ou pliseurs fichier les resultat de ce traitement et lance l'application java avec en paremetre le ou les fichier !!!
    Je ne vois pas de quelle appli java tu parles au début.
    De celle qui tourne sur le serveur ou de l'applet qui est sur le net ?
    Si c'est celle qui est sur le serveur, tu me dis qu'il faudrait que je la transforme en applet. C'est ce que je fais en ce moment. L'interface est devenu applet. Mais il me faut le résultat. Le pb est que je ne peux pas intégrer tous les traitements qui sont fait dans l'applet (il y en a une trentaine) et donc le chargement de l'applet mettrait des jours, je pense !!!!
    En plus, mon chef aimerait que l'applet que je suis en train de construire puisse permettre d'intégrer de nouveau traitement utilisable de suite (sans aide d'un développeur donc qu'il s'intégre de suite à l'applet). Je lui ai dit que ca devrait etre trop difficile.

    En ce qui concerne les traitements, ils sont en java ou en C++ fonctionne comme tu l'as dit (ils ont besoins de parametre, etc..)

    Quand tu dis:
    Mais si c ca c plus simple car tu n'aurais plus qu'a transferer les fichier vers l'applet et l'applet ferais sont boulot a partir de ces fichier!!
    Pourquoi tu dis que c plus simple et de quoi tu pales quand tu dis celà. De l'utilisation des paramètres pour les traitements ?

    Que veux tu dire quand tu dis : transférer des fichiers, c RMI ?.
    Quel transfert de fichier ?
    Venez nombreux sur ce forum, il est génial !!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Je savais que j'avais pas été clair !!!

    Alors d'abord RMI est un protocole qui permet d'uliser des objet distribué en gros tu as des objet qui tourne sur une machine serveur et le programme client peu les recuperer et utiliser leur methode l'avantage c'est que c methode s'execute coté serveur ce qui allege le client !!

    C'est peut etre ce que tu veux !!!

    Sinon la façon dont je voi les choses est la suivante :
    Execution de l'appli C++ :
    monAplliC++.exe image.jpg
    ce qui construit on va dire un fichier avec toutes les infos necessaire a la construction du resultat dans ton interface java on va apeler ce fichier
    'resultat'

    Ensuite j'ai l'impression d'apres ce que tu as dit que c'est l'appli C++ qui lance le programme java qui construit le resultat en faisant avnt de se terminer :

    java AppliJava 'resutlat' (je suis meme plus sur de la façon de passer un parametre mais bon)

    et donc la l'appli java construit le resultat !!

    Si c'est ca dans le cadre des applet et des servlet cela donnerai :

    Applet communique l'image a la servlet
    la servlet apelle l'appliC++ avec cette image en parametre
    la servlet recupere le fichier 'resultat' et le communique a l'applet a partir de la l'applet recré le resultat

    apres reste a voir effectivement si le traitement est lourd parce que si le client a un pentium2 bah il va peut etre ramé dans ce cas tu peut encore utiliser les objet distribué ( rmi ou CORBA) pour soulager le client !!


    Encore une fois je m'excuse de mon manque de clareté !!
    je sais que je suis pas doué !!!!
    UML avec VIOLET

  7. #7
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Hola, dit pas celà. C'est toi qui m'explique donc tu es plus doué que moi.

    Bref retournons à nos moutons ,

    En ce qui concerne l'interface ou plateforme qui sera sur le serveur. Elle contient donc plus d'une trentaines de traitements. Elle est faite en Java e les traitements sont à 90% en Java. Mais certains sont et seront en c++. Mais mon chef m'a dit que l'interface java gérait les 2 langages.

    En ce qui concerne son utilisation, je la compile normalement et je l'exécute en passant 3 paramètres qui sont :
    - intrac.xml (fichir de conf des traitements)
    - lemonde.xml (fichier xml faisant référence à lemonde.pdf) (Ca pourrait etre un fichier xml faisant référence à une image)
    - visucc.xsl (fichier utile et indispensable mais je ne sais pas pourquoi)

    Voilà les 3 fichiers que je passe en paramètre pour faire fonctionner l'interface. Ensuite, cette interface est lancée et l'utilisateur doit faire quelques manips (je sais, je viens de penser que l'utilisateur doit faire des trucs donc je ne vois pas comment l'applet pourrait le faire à la place de l'utilisateur). Et ensuite, le résulta tapparait dans uen fenêtre java.

    Je suis d'accord avec toi quand tu me dis que pour mon projet, l'applet communiquera avec la servlet (ca fonctionne)en donnant un fichier, ensuite la servlet appelle l'interface sur le serveur dans le fichier en paramètre (ainsi que les 2 autres).
    Là, il va y avoir un pb car en fait, l'utilisateur doit dire quel traitement il souhaite faire sur le fichier spécifié.
    Dans ce cas là, je pense que je dois modifier l'interface sur le serveur pour quel fasse automatiquement le traitement (spécifié sur l'applet) et donne tout de suite le résultat (là, je ne sais ps comment).
    Et ensuite, la servlet récupère le résultat (je ne sais pa comment) et le communique à l'applet qui l'affiche.

    Qu'en penses tu ????
    Venez nombreux sur ce forum, il est génial !!!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Là, il va y avoir un pb car en fait, l'utilisateur doit dire quel traitement il souhaite faire sur le fichier spécifié.
    Dans ce cas là, je pense que je dois modifier l'interface sur le serveur
    A priori oui tu va devoir rajouter un parametre qui indiquera quel traitement faire !!



    Et ensuite, la servlet récupère le résultat (je ne sais pa comment) et le communique à l'applet qui l'affiche.
    Je viens de pensé au fait que via une HttpURLConnection entre une applet et une servlet on peut communiquer un objet serialisé !
    Alors imaginons que que ton appli java genere le resultat dans un JPanel de swing !! (reste a savoir si les JPanel est serializable) si oui tu modifie ton appli de façon a se qu'il serialise le JPanel puis la servlet envoie ce JPanel a l'applet et ton applet peut ensuite en faire ce qu'elle veut !!

    Mais pour repondre a ta question je pense que tu t'approche de la solution mais d'un autre coté je sais pas tout sur tout donc peut etre y a t'il mieux a faire mais moi je ferai comme tu l'a decrit !!!
    UML avec VIOLET

  9. #9
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Je me demande toujours s'il est vraiment possible de lancer, via une applet et donc via la servlet, une interface qui tournerait sur le serveur hébergeant l'applet et la servlet.

    Comment est il possible de le faire ? Via getRunTime ?

    Est -il possible de rendre un JPanel sérialisable ?
    Venez nombreux sur ce forum, il est génial !!!

  10. #10
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Je me pose une question. Je sais comment lancer un programme via la commande getRunTime mais mon but est de lancer une application directement sur un serveur sans qu'un utilisateur ne le sache.

    Comment puis-je faire ????
    Venez nombreux sur ce forum, il est génial !!!

  11. #11
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Bonjour,
    Si j'ai bien compris, tu as à ta disposition une application java qui fait des traitements sur des fichiers (images ou texte), grâce à JNI et quelques fichiers XML (dont tu ne connais pas vraiment l'utilité ). Et ton but et de la transformer en application web. J'ai bon?
    Si c'est ca, tu as juste un problème de conception. N'essaye pas de lancer directement cette appli côté serveur et d'en récuperer le résultat(JFrame, JPanel ou autre). Ca ne me parais pas la bonne manière de faire. Dis moi si je me gourre.
    Voila une piste. Ton appli originale est surement basée sur une variante du modèle MVC. Essaye de distinguer les trois parties de cete architecture. Sachant que la Vue va devenir ton Applet et le Model/Controller un ensemble de servlets/beans/classes.
    En gros :
    Avant :
    Vue = JFrame avec JPanel, JButton, etc.
    Model = ensemble de classes faisant des transformations sur les fichiers (qui peux aussi mettre à jour la vue, etc.)
    Controller = ensemble de classes/méthodes/etc. faisant le lien entre les actions du client et le modèle
    Après :
    Vue : Applet
    Model : les mêmes classes que précedemment(servlet)
    Controller : même ensemble de classe que précédemment + communication applet<->servlet
    J'espère que j'ai pu t'aider.
    Bonne chance.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  12. #12
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Selon ce que tu me dis et que je comprend, presque bon.

    En fait, j'ai bien une appli java qui fait des traitements via des fichiers XML. (Grâce à JNI, je ne connais pas).
    En fait, je devais porter cette appli sur le net dans le sens où je devais créer une applet qui reprend cette appli java (même genre d'interface).
    J'ai créé l'applet en entier.
    Et donc je me suis dit qu'il ne me restait plus qu'à créer une servlet qui me permettrai de lancer l'appli java qui fait les traitements et ensuite de récupérer le résultat de l'appli java pour l'afficher grâce à l'applet.
    Avec ce que je pensais, je n'avais apparemment qu'une petite podification à faire sur l'appli java (celle avec les traitements).

    Mais avec ta solution, j'ai l'impression que je vais devoir modifier bcq de choses sur cette appli (et ce n'est pas trop recommandé).

    Qu'en penses tu ?
    Venez nombreux sur ce forum, il est génial !!!

  13. #13
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Bonjour,
    Normalement les modifications seront minimes, c'est l'avantage du miodèle MVC. Le modèle resteras le même (tu n'a pas à toucher à la manière dont le programme fais les modifs sur les fichiers). La vue reste la même (sauf que c'est dans une applet au lieu d'une Frame). Juste le controleur devra changer, c'est la communication entre le modèle et la vue.
    En gros, au lieu de dire lors du click sur un bouton "tu me transformes mon fichier et tu renvoie un resultat dans un JPanel" tu devras dire "tu me transformes le fichier et tu me renvoye le résultat vers mon applet". C'est clair?
    Pour faire simple tu utilise les mêmes composants graphiques, les mêmes méthodes et listeners. La seule chose que tu as à implémenter c'est la communication entre l'applet et la servlet. A priori, tu sais déjà le faire.
    Bonne chance.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  14. #14
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Je suis désolé mais je n'arrive pas à totu comprendre. C'est que je ne suis pas une super star en Java donc j'ai des fois du mal à tout capter,

    Mais je vais essayer donc tu me dis si j'ai tout bon.

    - je devrais modifier l'appli java qui fait les traitements pour qu'elle renvoie en fait le résultat de ces traitements dans mon applet au lieu de le renvoyer dans un JPanel, c ca?

    - Ce qui signifirais que je dois quand même lancer l'appli java sur le serveur à l'aide de l'applet, qu'ensuite l'appli java renverrais le résultat à mon applet et non po renvoyer un JPanel (ce JPanel que je pensais renvoyer à l'applet) ?

    Si j'ai tout bon alors j'ai du mal à comprendre une chose :
    - comment je peux faire pour renvoyer le résultat à l'applet au lieu de renvoyer un JPanel ?
    Car pour moi, renvoyer le résultat à l'applet, c'est renvoyer un objet à l'applet donc peut etre un JPanel, non ?
    Venez nombreux sur ce forum, il est génial !!!

  15. #15
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Salut,
    Citation Envoyé par gandalf_le_blanc
    je devrais modifier l'appli java qui fait les traitements pour qu'elle renvoie en fait le résultat de ces traitements dans mon applet au lieu de le renvoyer dans un JPanel, c ca?
    Euh non. Tu ne devrais pas utiliser l'application en général, mais seulement une partie des classes qu'elle même utilise.
    Bon, je vais essayer de te trouver un exemple simple de transformation d'application en appli web.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  16. #16
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Bonjour,
    Voila un exemple. Supposons ton application de base formée de deux classes. Une pour le traitement des données (TestImage) et l'autre pour l'interface graphique (TestInterface).
    Code de la classe TestImage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class TestImage{
    	private BufferedImage image;
    	public TestImage(BufferedImage uneImage){
    		image = uneImage;
    	}	
    	public ImageIcon getTransformImage(){
    		if(image==null){return null;}
    		ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY),null);
    		BufferedImage imageGrise = op.filter(image,null);
    		return new ImageIcon(imageGrise);	
    	}
    }
    Dans l'exemple, elle retourne simplement une image en gris par rapport à l'image de base.
    Et voici ton interface graphique TestInterface :
    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
     
    public class TestInterface extends JFrame{
    	private ImageIcon image;
    	private JLabel label;
    	private JButton choisir,transformer;
    	public TestInterface(){
    		super("titre frame");
                                    label = new JLabel("Sélectionnez une image");
    		getContentPane().add(label,BorderLayout.CENTER);
    		JPanel panelSud = new JPanel(new GridLayout(1,2));
    		choisir = new JButton("Choisir");	
    		choisir.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent ae){
    				choisir();
    			}	
    		});
    		panelSud.add(choisir);
    		transformer = new JButton("Transformer");	
    		transformer.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent ae){
    				transformer();
    			}	
    		});
    		panelSud.add(transformer);
    		getContentPane().add(panelSud,BorderLayout.SOUTH);
     
    	}	
    	private void choisir(){
    		JFileChooser chooser = new JFileChooser();
    		int commande = chooser.showOpenDialog(null);
    		if(commande!=JFileChooser.APPROVE_OPTION){return;}
    		try{
    			image = new ImageIcon(ImageIO.read(chooser.getSelectedFile().toURL()));
    		}catch(Exception e){e.printStackTrace();}
    	}
    	private void transformer(){
    		try{
    			TestImage testImage = new TestImage(image);
    			label.setIcon(testImage.getTransformImage());
    		}catch(Exception e){e.printStackTrace();}
    	}
                    public static void main(String[] args){
                     //init de la fenêtre plus affichage
                    }
    }
    Maintenant pour créer ton appli web, tu gardes la même classe TestImage. Ta vue deviens TestApplet, dont voici le code :
    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
     
    public class TestApplet extends JApplet{
    	private ImageIcon image;
    	private JLabel label;
    	private JButton choisir,transformer;
    	public void init(){
    		//même code que TestInterface
    	}	
    	private void choisir(){
    		//même code que TestInterface
    	}
    	private void transformer(){
    		try{
    			URL url = new URL(getCodeBase(),"communication");//mapping de ta servlet dans web.xml
    			URLConnection con = url.openConnection();
    			con.setDoOutput(true);
    			ObjectOutputStream out = new ObjectOutputStream(con.getOutputStream());
    			out.writeObject(image);
    			ObjectInputStream in = new ObjectInputStream(con.getInputStream());
    			label.setIcon((ImageIcon)in.readObject());
    		}catch(Exception e){e.printStackTrace();}
    	}
    }
    Et voici le code de la servlet qui fait le traitement :
    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
     
    public class TestServlet extends HttpServlet {
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
        	throws ServletException, IOException {
        		try{
    		    	ObjectInputStream in = new ObjectInputStream(request.getInputStream());
    				ImageIcon icone = (ImageIcon)in.readObject();
    				BufferedImage image = new BufferedImage(icone.getIconWidth(),icone.getIconHeight(),BufferedImage.TYPE_INT_RGB);
    				Graphics2D g = image.createGraphics();
    				g.drawImage(icone.getImage(),0,0,null);
    				g.dispose();
    				TestImage testImage = new TestImage(image);
    		        ImageIcon resultat = testImage.getTransformImage();
    		        ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
    				out.writeObject(resultat);
    			}catch(Exception e){e.printStackTrace();}
        }
    }
    Voila, voila. j'espère que ca a pu t'aider.
    Maintenant, à toi d'adapter cet exemple simpliste à ton application. Pense par exemple à signer ton applet pour l'accès aux fichiers Le principale est de passer à ta servlet le juste nécessaire pour faire le traitement.
    Bonne chance.
    @+
    PS : Déplacé du forum général java. Tu auras surement plus de précisions ici.
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  17. #17
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Ok je vois ce que tu veux me dire mais je ne le trouve pas adapter à mon truc.

    Explications :
    Mon appli java avec tous les traitements est une plateforme d'imagerie. Mais elle n'est pas trop orientée utilisateurs car l'interface est simpliste et moche.
    C'est pour celà que mon chef m'a dit de créer une applet (une interface qui reprend la même interface que la plateforme mais en ncq mieux).
    J'ai fait cette applet. Et mon chef pensait qu'en créant une servlet, je pourrais lancer cette plateforme d'imagerie via l'applet et que je pourrais récupérer le résultat de la plateforme pour qu'ensuite l'applet que j'ai créé affiche le résultat à un utilisateur sur le net.

    Je comprend ta solution mais d'après moi, elle va m'obliger à intégrer la plateforme d'imagerie dans mon applet (genre dans un même projet). Et là, ca ferait une applet gigantesque en terme de taille.

    Qu'en penses tu ?
    Venez nombreux sur ce forum, il est génial !!!

  18. #18
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Salut,
    Citation Envoyé par gandalf_le_blanc
    Je comprend ta solution mais d'après moi, elle va m'obliger à intégrer la plateforme d'imagerie dans mon applet (genre dans un même projet). Et là, ca ferait une applet gigantesque en terme de taille.
    Justement, non. Enfin, normalement. Sans connaître plus en détail l'application de base, il est difficile de se prononcer.
    Normalement, ton appli (faite en majorité en java) doit d'une facon ou d'une autre différencier le traitement des données de l'interface graphique client. C'est une des bases de la POO.
    Il faut que tu te plonges dans le code que tu as. Essaye de le décortiquer et de différencier les trois grandes parties de l'architecture MVC. Il faut absolument que tu comprenne complètement l'application de base avant de vouloir la modifier.
    Ton applet ne sera qu'une interface (au sens propre), quelque chose de très léger, qui va permettre au client d'appeller les fonctionnalités principales de l'appli (traitement des fichiers, images, ...).
    Essaye de faire cela. Si tu as des problèmes, donnes de plus amples explications sur l'appli de base : classes, interfaces graphiques, but, etc.
    Bon courage.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  19. #19
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    En ce qui concerne l'appli java, elle comporte au minimum 80 ou 100 classes ce qui fait qu'il est difficile de trouver les fichiers qui correspondent à l'interface et les autres.

    J'ai regardé quand même pas mal le code le code et je pense avoir trouver les deux classes qui font l'interface graphique de cette appli java.
    Si je comprend bien ce que tu veux me dire, je dois modifier ces deux classes de l'interface pour qu'elles communiquent avec ma servlet.

    Je comprend ce que tu veux dire mais comme j'ai déjà créé une applet qui reprend l'interface graphique et comme je ne vais pas intégrer la partie traitement de cette appli dans mon applet, ne pourrais-je pas modifier la partie interface de l'appli java pour qu'elle renvoie le résultat sous une forme que je pourrais renvoyer à l'applet via la servlet ou carrément sous forme d'applet pour que j'envoie cette applet à MON applet ???

    Qu'en penses tu ?
    Venez nombreux sur ce forum, il est génial !!!

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Salut
    J'ai regardé quand même pas mal le code le code et je pense avoir trouver les deux classes qui font l'interface graphique de cette appli java.
    Si je comprend bien ce que tu veux me dire, je dois modifier ces deux classes de l'interface pour qu'elles communiquent avec ma servlet.

    Si j'ai bien compris ce que veut dire Vedaer tu dois au contraire ne plus te servir de ces deux classe reprendre les 78 autres et les placé dans ton application web avec ta servlet ces deux classe ne sont plus ton interface car maintenant ton interface est ton applet !!

    Lorsque le client click sur le bouton zoom (par exemple) de ton applet l'applet dit "zoom" a ta servlet et la servlet utilise l'une des classe pour apeller la methode zoom !!!

    Les deux classes de l'interface de l'application ne devrais te servir uniquement pour savoir qu'elle methode apeller pour chaque bouton ou action :!!!

    J'espere avoir compris ce que voulais dire vedaer
    UML avec VIOLET

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 27/02/2015, 11h21
  2. ce programme est-il possible en c ?
    Par Dr walid dans le forum Débuter
    Réponses: 8
    Dernier message: 13/09/2009, 20h06
  3. Réponses: 8
    Dernier message: 09/04/2009, 19h13
  4. Oemapp console est 'il possible sur la 10G
    Par Bayoro dans le forum Oracle
    Réponses: 0
    Dernier message: 12/05/2008, 23h34
  5. Le grant est il possible sur un schema ?
    Par nodoxe dans le forum Oracle
    Réponses: 3
    Dernier message: 11/09/2006, 17h33

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