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 :

Exécuter un fichier .jar dans une page JSP


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 44
    Points : 39
    Points
    39
    Par défaut Exécuter un fichier .jar dans une page JSP
    Bonjour à tous,
    j'ai une classe java swing que j'ai l'exporter en .jar, et je veux qu'elle soit exécuter dans une page JSP, j'ai essayer plusieurs méthode mais en vin,
    alors je recours à vous pour m'aider à corriger ce problème, ma question est, comment je peux exécuter ce jar en JSP?
    Voilà mon code de ma classe java:
    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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Calendar;
    import java.util.Date;
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.data.category.IntervalCategoryDataset;
    import org.jfree.data.gantt.Task;
    import org.jfree.data.gantt.TaskSeries;
    import org.jfree.data.gantt.TaskSeriesCollection;
    import org.jfree.data.time.SimpleTimePeriod;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
     
     
    public class First extends ApplicationFrame {
     
     
        public First(final String title) {
     
            super(title);
     
            final IntervalCategoryDataset dataset = createDataset();
            final JFreeChart chart = createChart(dataset);
     
            // add the chart to a panel...
            final ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new java.awt.Dimension(1000, 500));
            setContentPane(chartPanel);
     
        }
     
        public static IntervalCategoryDataset createDataset() {
        	final TaskSeriesCollection collection = new TaskSeriesCollection();
        	final TaskSeries s1 = new TaskSeries("Scheduled");
        	Connection Con = null;
        	try
    		{
    			Class.forName("com.mysql.jdbc.Driver");
    		}
    			catch (ClassNotFoundException e)
    		{
    			System.out.println("Impossible de charger le pilote jdbc " +e);
    		}
     
    		//connection a la base de données
    		System.out.println("Connection a la base de données");
    		try
    		{		
     
    			Con = DriverManager.getConnection("jdbc:mysql://localhost:3307/bdreclam","root","1234");
    		} 
    		catch (SQLException e) 
    		{
    			System.out.println("Connection à la base de données impossible "+ e);
     
    		}
    		String requete="select * from affectation;";
    		try
    		{
    		Statement stmt = Con.createStatement();
    		ResultSet res = stmt.executeQuery(requete);
    		while (res.next())
    		{
    			 String ch1=res.getString("Date_deb_des");
    			 String ch2=res.getString("Date_fin_des");
    			 int jj=Integer.parseInt(ch1.substring(0,2));
    			 int mm=Integer.parseInt(ch1.substring(3,5));
    			 int aa=Integer.parseInt(ch1.substring(6,10));
    			 int j=Integer.parseInt(ch2.substring(0,2));
    			 int m=Integer.parseInt(ch2.substring(3,5));
    			 int a=Integer.parseInt(ch2.substring(6,10));
    			 System.out.println(res.getString("mat_emp")+" : "+jj+"/"+mm+"/"+aa+" to "+j+"/"+m+"/"+a);
    		        s1.add(new Task(res.getString("mat_emp")+" "+res.getString("idrec"),new SimpleTimePeriod(date(jj,mm-1,aa),date(j,m-1,a))));
    		}
    		collection.add(s1);	
    		}
    		catch (SQLException e) {
    		e.printStackTrace();
    		}
    		return collection;
        }
     
        /**
         * Utility method for creating <code>Date</code> objects.
         *
         * @param day  the date.
         * @param month  the month.
         * @param year  the year.
         *
         * @return a date.
         */
        private static Date date(final int day, final int month, final int year) {
     
            final Calendar calendar = Calendar.getInstance();
            calendar.set(year, month, day);
            final Date result = calendar.getTime();
            return result;
     
        }
     
        /**
         * Creates a chart.
         * 
         * @param dataset  the dataset.
         * 
         * @return The chart.
         */
        private JFreeChart createChart(final IntervalCategoryDataset dataset) {
            final JFreeChart chart = ChartFactory.createGanttChart(
                "Tâches Des Informaticiens",  // chart title
                "Tâche",              // domain axis label
                "Date",              // range axis label
                dataset,             // data
                true,                // include legend
                true,                // tooltips
                true                // urls
            );    
    //        chart.getCategoryPlot().getDomainAxis().setMaxCategoryLabelWidthRatio(10.0f);
            return chart;    
        }
     
        /**
         * Starting point for the demonstration application.
         *
         * @param args  ignored.
         */
        public static void main(final String[] args) {
     
            final First demo = new First("Disponibilité Des Informaticiens");
            demo.pack();
            RefineryUtilities.centerFrameOnScreen(demo);
            demo.setVisible(true);
     
        }
     
    }
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tout d'abord, il y a une différence entre exécuter un jar (sous entendu jar exécutable) et utiliser une classe présente dans un jar, et en exécuter une de ces méthodes, comme sa méthode main(). Pour utiliser une classe d'un jar dans une jsp, il faut que le jar soit dans le classpath de l'application web. Ensuite, il suffit de faire un import de cette classe, comme pour n'importe quelle classe standard du JDK, ou d'une autre bibliothèque.

    Ensuite, une jsp est destinée à être utilisée par une servlet (exécutée donc côté serveur) pour générer une page html (entre autres), affichée, côté client, dans le navigateur. Ici, ta classe est une ApplicationFrame de l'api JFreeChart, une classe étendant JFrame, soit une classe d'interface graphique servant à afficher une fenêtre. Si tu exécutes la méthode main de cette classe dans la jsp, elle s'exécutera donc côté serveur (si le serveur a un affichage, sinon il y aura une exception). Je suppose que c'est dans la page web que tu veux que ton graphique s'affiche, pas dans le bureau du serveur. Jamais ton graphique ne s'affichera dans la page web. Ce n'est pas du tout comme ça qu'il faut procéder pour afficher un graphique dans une page web. Il faut soit générer ton graphique directement dans le flux html avec des moyens html (balises, images, etc... éventuellement utiliser un composant de graphiques web, avec du javascript par exemple), soit utiliser une applet, qui te servira d'équivalent de fenêtre graphique.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 44
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Tout d'abord, il y a une différence entre exécuter un jar (sous entendu jar exécutable) et utiliser une classe présente dans un jar, et en exécuter une de ces méthodes, comme sa méthode main(). Pour utiliser une classe d'un jar dans une jsp, il faut que le jar soit dans le classpath de l'application web. Ensuite, il suffit de faire un import de cette classe, comme pour n'importe quelle classe standard du JDK, ou d'une autre bibliothèque.

    Ensuite, une jsp est destinée à être utilisée par une servlet (exécutée donc côté serveur) pour générer une page html (entre autres), affichée, côté client, dans le navigateur. Ici, ta classe est une ApplicationFrame de l'api JFreeChart, une classe étendant JFrame, soit une classe d'interface graphique servant à afficher une fenêtre. Si tu exécutes la méthode main de cette classe dans la jsp, elle s'exécutera donc côté serveur (si le serveur a un affichage, sinon il y aura une exception). Je suppose que c'est dans la page web que tu veux que ton graphique s'affiche, pas dans le bureau du serveur. Jamais ton graphique ne s'affichera dans la page web. Ce n'est pas du tout comme ça qu'il faut procéder pour afficher un graphique dans une page web. Il faut soit générer ton graphique directement dans le flux html avec des moyens html (balises, images, etc... éventuellement utiliser un composant de graphiques web, avec du javascript par exemple), soit utiliser une applet, qui te servira d'équivalent de fenêtre graphique.
    Merci pour ta réponse, je voudrais afficher ce graphe en ma page JSP, comment je peux le faire avec les applets?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tout d'abord voici un tutoriel sur les applets.

    Ensuite, comme une JFrame est l'équivalent SWING de la Frame AWT, JApplet est l'équivalent de l'Applet. Ensuite, une JApplet s'utilise un peu comme une JFrame, du point de vue graphique. Regardes l'exemple sur le tutorial Oracle pour voir comment ajouter ton ChartPanel à la JApplet au lieu de le mettre dans l'ApplicationFrame (tu n'auras évidemment pas toutes les fonctionnalités de cette classe et tu seras peut être obligé de faire toi même celles dont tu aurais besoin).

    Enfin, le JFreechart developper guide est fourni avec un exemple d'intégration de JFreeChart dans une applet.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 44
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par joel.drigo Voir le message

    Enfin, le JFreechart developper guide est fourni avec un exemple d'intégration de JFreeChart dans une applet.
    J'ai bien transformer ce JFreeChartt en une applet, l'applet s'exécute trés bien dans l'eclipse mais dans la page JSP, ella m'affiche cet erreur : java.lang.NoClassDefFoundError: org/jfree/data/time/TimePeriod
    je n'ai pas pu trouvé une solution.
    Merci d'avance.

Discussions similaires

  1. Problème fichier JavaScript dans une page JSP
    Par layloun dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/08/2014, 16h44
  2. afficher un fichier xml dans une page jsp
    Par Sun03 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/08/2009, 17h50
  3. remplir tableau dans une page JSP à partir d'un fichier texte
    Par ramzouni dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2009, 20h44
  4. Inclusion de fichier CSS dans une page jsp
    Par delob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/01/2008, 01h33
  5. utilisation d'un fichier xml dans une page jsp
    Par thesorrow dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/03/2007, 08h38

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