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 :

Afficher des slides sur une page JSP


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Afficher des slides sur une page JSP
    Bonjour,
    Ca fait 3 mois que je suit un stage en informatique. Mon objectif est de faire une application permettant de donner des informations complementaires a un Powerpoint.
    Au debut ca marchait bien, et j'avais reussi a faire une application en IHM Java operationnelle.

    Mais les choses ont commencés a se corser lorsque mon maitre de stage a suggere de faire cet application en format web, et donc d'utiliser du JEE.

    Ca fait donc une semaine que j'essai de faire marcher tout ca. Ce qui etait operationnel dans l'IHM ne l'est plus ici. Je n'arrive meme pas a detecter la source du probleme, c'est pourquoi je viens vers vous pour demander de l'aide, en tant que dernier espoir.

    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
    package servlet;
     
    import beans.Slide;
    import beans.Slides;
    import controller.Open;
    import forms.InfosSlides;
     
    import java.io.*;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.Part;
    import javax.swing.*;
     
    public class Home extends HttpServlet {
        private String ATT_FICHIER   = "fichier";
        private String ATT_SLIDE = "slide";
        private String CHEMIN = "chemin";
        private String VUE = "/WEB-INF/Home.jsp";
     
        public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
                    /* Affichage de la page d'upload */
     
     
            //creation du groupe de slides a partir du chemin
            Slides slides = new Slides("c:/fichiers/Test.pptx",true);
     
            //test sur le slide numnero 1
            request.setAttribute(ATT_SLIDE,slides.getPage(1));
     
            //envoi des donnees
            this.getServletContext().getRequestDispatcher(VUE).forward( request, response );
        }
     
        public void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
        }
    }

    Slides.java (les methodes qui nous interessent) :
    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
    package beans;
     
    import com.hp.hpl.jena.rdf.model.Model;
    import com.hp.hpl.jena.rdf.model.Property;
    import com.hp.hpl.jena.rdf.model.Resource;
    import com.hp.hpl.jena.rdf.model.StmtIterator;
    import com.hp.hpl.jena.vocabulary.RDFS;
     
    import java.util.ArrayList;
     
    /**
     * Created by Nicolas on 2014/05/20.
     */
    public class Slides {
     
        protected ArrayList<Slide> slides;
     
     
     
        public Slides() {
            //constructeur vide
            slides = new ArrayList<Slide>();
        }
     
        public Slides(String source, boolean res){
            //constructeur. "source" donne le chemin du ppt. res est vrai si c'est un pptx, et faux si c'est un ppt. 
            slides = getAllSlides(source, res);
        }
     
     
        //Fonction tranferant les slides du ppt dans une nouvelle instance Slides.
        public ArrayList<Slide> getAllSlides(String source, boolean res){
            ArrayList<Slide> slides = new ArrayList<Slide>();
            Slide slide;
            int page = 0;
     
            do{
                page++;
                slide = new Slide(page,source,res);
                slides.add(slide);
            }while(slide.getPage() < slide.getAll());
     
            return slides;
     
        }
     
        public Slide getPage(int page){
            return slides.get(page);
        }

    Slide.java (classe pour un seul slide du ppt)
    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
    package beans;
     
     
     
    import org.apache.poi.hslf.HSLFSlideShow;
    import org.apache.poi.xslf.usermodel.XMLSlideShow;
    import org.apache.poi.xslf.usermodel.XSLFSlide;
    import org.apache.poi.hslf.usermodel.SlideShow;
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.geom.Rectangle2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
     
    /**
     * Created by Nicolas on 2014/05/19.
     */
    public class Slide {
        private int page;
        private ImageIcon image;
        private int all;
     
     
     
        //Constructeur. page commence a 1.
        public Slide(int page, String source, boolean res) {
            this.page = page;
     
            this.image = getImage(source,res);
        }
     
     
    //methode permettant d'extraire l'image du slide.
        public ImageIcon getImage(String source,boolean res){
            try {
                File file = new File(source);
                if(res) {
                    XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(source));
                    XSLFSlide[] slides = ppt.getSlides();
                    Dimension pgsize = ppt.getPageSize();
     
                    this.title_name = slides[this.page-1].getTitle();
     
     
                    BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
                    Graphics2D graphics = img.createGraphics();
                    graphics.setPaint(Color.white);
                    graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
     
                    slides[this.page-1].draw(graphics);
     
                    ImageIcon icon = new ImageIcon(img);
                    this.all = slides.length;
     
                    System.out.println(this.all);
     
                    return icon;
                }
                else{
                    SlideShow ppt = new SlideShow(new HSLFSlideShow(source));
                    org.apache.poi.hslf.model.Slide[] slides = ppt.getSlides();
                    Dimension pgsize = ppt.getPageSize();
     
                    this.title_name = slides[this.page-1].getTitle();
     
     
                    BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
                    Graphics2D graphics = img.createGraphics();
                    graphics.setPaint(Color.white);
                    graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
     
                    ImageIcon icon = new ImageIcon(img);
                    this.all = slides.length;
     
                    return icon;
                }
     
     
            } catch (Exception e) {
                e.printStackTrace();
     
                return null;
            }
        }


    Le message d'erreur :

    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
    "C:\Program Files\Java\jdk1.7.0_07\bin\java" -Dcatalina.base=C:\Users\Nicolas\.IntelliJIdea13\system\tomcat\Unnamed_projectStage_3 -Dcatalina.home=C:\tomcat7 -Djava.io.tmpdir=C:\tomcat7\temp -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 -cp C:\tomcat7\bin\bootstrap.jar;C:\tomcat7\bin\tomcat-juli.jar org.apache.catalina.startup.Bootstrap start
    [2014-08-14 09:00:21,309] Artifact projectStage:war exploded: Server is not connected. Deploy is not available.
    8 14, 2014 9:00:22 ?? org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_07\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\MySQL\MySQL Server 5.5\bin;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\opencv\build\x86\vc10\bin;C:\Program Files\Java\jdk1.7.0_07\bin;c:\Borland\Bcc55\Bin;C:\Users\nakano\Desktop\0213\;;C:\TDM-GCC-64\bin;.
    8 14, 2014 9:00:22 ?? org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    8 14, 2014 9:00:22 ?? org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    8 14, 2014 9:00:22 ?? org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 766 ms
    8 14, 2014 9:00:22 ?? org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    8 14, 2014 9:00:22 ?? org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.50
    8 14, 2014 9:00:22 ?? org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8080"]
    8 14, 2014 9:00:22 ?? org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    8 14, 2014 9:00:22 ?? org.apache.catalina.startup.Catalina start
    INFO: Server startup in 67 ms
    Connected to server
    [2014-08-14 09:00:22,509] Artifact projectStage:war exploded: Artifact is being deployed, please wait...
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
    8 14, 2014 9:00:25 ?? org.apache.catalina.startup.TaglibUriRule body
    INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
    [2014-08-14 09:00:25,404] Artifact projectStage:war exploded: Artifact is deployed successfully
    [2014-08-14 09:00:25,404] Artifact projectStage:war exploded: Deploy took 2,895 milliseconds
    8 14, 2014 9:00:26 ?? org.apache.jasper.compiler.TldLocationsCache tldScanJar
    INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    org.apache.poi.POIXMLException: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
    	at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:82)
    	at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:87)
    	at beans.Slide.getImage(Slide.java:174)
    	at beans.Slide.<init>(Slide.java:50)
    	at beans.Slides.getAllSlides(Slides.java:114)
    	at beans.Slides.<init>(Slides.java:35)
    	at servlet.Home.doGet(Home.java:39)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    	at java.lang.Thread.run(Thread.java:722)
    Caused by: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
    	at org.apache.poi.xslf.usermodel.XSLFFactory.createDocumentPart(XSLFFactory.java:66)
    	at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)
    	at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
    	at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:80)
    	... 27 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    	at org.apache.poi.xslf.usermodel.XSLFFactory.createDocumentPart(XSLFFactory.java:64)
    	... 30 more
    Caused by: java.lang.NoClassDefFoundError: org/openxmlformats/schemas/presentationml/x2006/main/SldMasterDocument$Factory
    	at org.apache.poi.xslf.usermodel.XSLFSlideMaster.<init>(XSLFSlideMaster.java:68)
    	... 35 more
    Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.presentationml.x2006.main.SldMasterDocument$Factory
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    	... 36 more
     
    java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    	java.util.ArrayList.rangeCheck(ArrayList.java:604)
    	java.util.ArrayList.get(ArrayList.java:382)
    	beans.Slides.getPage(Slides.java:101)
    	servlet.Home.doGet(Home.java:41)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    Voila voila. Je commence un peu a paniquer car je dois finir ca pour la semaine prochaine, et que sans ca je suis bloqué. Comme je l'ai dis je n'arrive pas a comprendre d'ou vient l'erreur, surtout que sur une autre plateforme ca marchait correctement !
    Je crois que j'ai deja passé chaque ligne du message d'erreur en recherche google, sans succes

    Merci d'avance, et si vous avez besoin d'infos supplementaires, n'hesitez pas !


    (ps : desole pour les accents, je suis sur un clavier qwerty...)

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,

    Si la réponse n'a déjà été trouvée, l'erreur se trouve ici ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.presentationml.x2006.main.SldMasterDocument$Factory
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

Discussions similaires

  1. afficher des donnée avec une page JSP
    Par alfred5 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 02/04/2011, 16h56
  2. afficher un chart sur une page jsp
    Par ammoull dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 29/04/2010, 18h49
  3. Afficher des graphes sur une page web
    Par zalalus dans le forum C#
    Réponses: 1
    Dernier message: 19/08/2009, 10h55
  4. Affichage des données sur une page jsp
    Par khaoula_14_05 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/10/2008, 09h51
  5. afficher resultat d'une requete sur une page jsp
    Par vasco_di_gama dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/07/2007, 14h56

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