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

JSF Java Discussion :

jsf et ireport


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 36
    Par défaut jsf et ireport
    bonjour;
    si quelqu'un peut m'aider je serais très reconnaissante,
    je veux générer un rapport à partir de ma jsp
    j'ai créer le bean suivant
    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
     
    package Beans;
     
     
    /**
     *
     * @author admin
     */
     
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.HashMap;
    import javax.faces.context.FacesContext;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;
    import net.sf.jasperreports.engine.JasperRunManager;
     
    public class Generate {
     
    	private  String categorie;
     
     
    	public Generate(){
     
    	}
     
    	public void  print() {
     
     
    			try {
     
     
     
    				 FacesContext facesContext = FacesContext.getCurrentInstance();
    			        HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
    			        InputStream reportStream = facesContext.getExternalContext().getResourceAsStream("/Report/report1.jasper.jasper");
     
    			        ServletOutputStream servletOutputStream = response.getOutputStream();
     
     
    			        facesContext.responseComplete();
    			        response.setContentType("application/pdf");
     
    			        JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream,
    			                new HashMap(),new net.sf.jasperreports.engine.JREmptyDataSource());
     
     
    			        servletOutputStream.flush();
    			        servletOutputStream.close();
     
     
    			} catch (IOException e) {
    			System.out.print(e.getMessage());
     
    			}
     
    			catch (Exception e) {
    				// TODO: handle exception
    				e.printStackTrace();
    			}
     
     
    	}
     
    	public String getCategorie() {
    		return categorie;
    	}
     
    	public void setCategorie(String categorie) {
    		this.categorie = categorie;
    	}
    }
    et ma jsp est la suivante
    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
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <html>
    	<head>
     
    		<title></title>
    	</head>
    	<body>
    		<f:view>
    			<h:form>
    			<h:outputText value="categorie" ></h:outputText>
    			<h:inputText value="#{generate.categorie}" ></h:inputText>
    			<h:commandButton value="Generate" action="#{generate.print}"  >
     
                            </h:commandButton>
    			</h:form>
    		</f:view>
    	</body>
    </html>
    j'ai crée mon fichier report.jrxml sous ireport4 je l'ai compilé et exécuté ,et sa marche zen avec un paramètre que j'ai donné ,et mon rapport marche bien.
    ensuite j'ai ajouté le fichier compilé report.jasper et le fichier PDF report. PDF dans un dossier sous "web pages" de projet .
    lorsque je run ma jsp , je saisie le paramètre et je clique sur le bouton "generate" ,il me redirige vers une page vide .et lorsque je verifie le log serveur je vois l'erreur suivante
    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
     
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    java.lang.RuntimeException: Cannot find FacesContext
            at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1855)
            at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1672)
            at org.apache.jsp.r_jsp._jspx_meth_f_005fview_005f0(r_jsp.java:110)
            at org.apache.jsp.r_jsp._jspService(r_jsp.java:84)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
            at java.lang.Thread.run(Thread.java:619)

    et celle la
    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
     
    java.lang.NullPointerException
            at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2266)
            at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279)
            at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
            at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
            at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
            at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:53)
            at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:193)
            at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:603)
            at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:370)
            at Beans.Generate.print(Generate.java:48)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
            at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
            at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
            at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
            at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
            at javax.faces.component.UICommand.broadcast(UICommand.java:315)
            at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
            at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
            at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
            at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
            at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
            at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
            at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
            at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
            at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
            at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
            at java.lang.Thread.run(Thread.java:619)


    s'il vous plais je ne sais pas ou est l'erreur .aider moi

    merciiiii

  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
    Par défaut
    Fais nous voir ta jsp et ton faces-config. J'ai l'impression que tu n'as pas déclaré ton managedBean "generate" dans ce fichier. si possible fais voir ton web.xml aussi. Ce d'après cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.RuntimeException: Cannot find FacesContext

  3. #3
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 36
    Par défaut
    merci pour la réponse .mais j'ai déjà montré ma jsp et j'ai déclaré mon managedbean voila ce j'ai mis dans le faces-config
    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
     
     
    <faces-config version="1.2" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
     
     <managed-bean>
         <managed-bean-name>richFacesBean</managed-bean-name>
         <managed-bean-class>org.my.richfaces.RichFacesBean</managed-bean-class>
         <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
     
    <application>
            <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
        </application>
    ........
     
        <managed-bean>
            <managed-bean-name>generate</managed-bean-name>
            <managed-bean-class>Beans.Generate</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
     
     
    </faces-config>
    et voila mon web.xml
    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
     
     
     <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
     
      <filter>
            <display-name>RichFaces Filter</display-name>
            <filter-name>richfaces</filter-name>
            <filter-class>org.ajax4jsf.Filter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>richfaces</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>INCLUDE</dispatcher>
        </filter-mapping>
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
         <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.jsf</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>forwardToJSF.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    et ma jsp:

    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
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <html>
    	<head>
     
    		<title></title>
    	</head>
    	<body>
    		<f:view>
    			<h:form>
    			<h:outputText value="categorie" ></h:outputText>
    			<h:inputText value="#{generate.categorie}" ></h:inputText>
    			<h:commandButton value="Generate" action="#{generate.print}"  >
     
                            </h:commandButton>
    			</h:form>
    		</f:view>
    	</body>
    </html>

  4. #4
    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
    Par défaut
    T'as la réponse ici

Discussions similaires

  1. Generer Etat PDF ireport de puis une appli web JSF
    Par toure32 dans le forum iReport
    Réponses: 2
    Dernier message: 07/02/2011, 09h30
  2. Réponses: 0
    Dernier message: 16/08/2010, 14h03
  3. ireport + jsf + visualisation de pdf
    Par methodman225 dans le forum Jasper
    Réponses: 9
    Dernier message: 02/07/2010, 19h47
  4. JSF & Ireport
    Par rmougali dans le forum JSF
    Réponses: 2
    Dernier message: 25/11/2009, 13h29
  5. afficher des etats ireports dans une appli jsf
    Par ouedmouss dans le forum Documents
    Réponses: 1
    Dernier message: 09/02/2007, 07h05

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