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 :

Erreur lors de redirection


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut Erreur lors de redirection
    Bonjour,
    je développe un projet en jsf/jpa, et j'ai eu le problème suivant:
    j'ai des données sous forme d'images, chaque image contient des nom par exemple, et ces nom sont classé par des Ring(RingA,RingB,...), j'ai 5 rings alors 5 images alors lorsque je veux afficher l'image qui contient le ring voulu, je fais la recherche dans la BD par nom, il récupère le ring et il affiche l'image qui le contient bon je sais que ce n'est pas si clair, alors voila un peu du code.
    concrètement c'est une application réseau et je gère la partie transmission,mais ces le même principe.
    Transmission.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Entity
    @NamedQuery(name="Transmission.findAll", query="SELECT t FROM Transmission t")
    public class Transmission implements Serializable {
        private static final long serialVersionUID = 1L;
     
        @Id
        @Column(name="Site")
        private String site;
        @Column(name="[Ring CET]")
        private String ring_CET;
         getters() & setters()...
    }
    TransmissionDao.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
    @Stateless
    public class TransmissionDao {
     
        @PersistenceContext(name="PFE")
        private EntityManager em;
     
        public TransmissionDao(){}
     
        public Transmission getBySite(String site)
        {
             Query query = em.createQuery("SELECT t FROM Transmission t WHERE t.site=:site");
             query.setParameter("site",site);
     
             List<Transmission> transmissions = query.getResultList();
             Transmission result = null;
             if(transmissions != null && transmissions.size() == 1){
                result = transmissions.get(0);
             }
             return result;
        }
     
        public Transmission affichRing(String site) throws IOException
        {
            String ring=getBySite(site).getRing_CET();
            if(ring=="RingA")
            {
                FacesContext.getCurrentInstance().getExternalContext().dispatch("RingA.xhtml");
            }
            return null;
        }
     
     
    }
    TransmissionBean.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
    @SessionScoped
    @Named
    public class TransmissionBean implements Serializable{
     
        @Inject
        private TransmissionDao tDao;
        private String site;
     
     
        public String getSite() {
            return site;
        }
     
        public void setSite(String site) {
            this.site = site;
        }
     
        public Transmission getTransmissionBySite() throws IOException
        {  
     
            return tDao.affichRing(site);
        }
     
    }
    Transmission.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <h:form>
        <h:panelGrid columns="3">
            <h:outputLabel value="Recherche un graphe de transmission: "/>
            <h:inputText id="keyword" value="#{transmissionBean.site}" class="form-control" required="true" label="Keyword" />
            <br />
            <h:commandButton value="Rechercher par Site"  class="btn btn-default"/>
        </h:panelGrid>
        <br/>
        </h:form>
        </div>
        <h:dataTable var="p" value="#{transmissionBean.transmissionBySite}" class="table table-bordered table-striped table-condensed">
    </h:dataTable>
    RingA.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <h:graphicImage value="../images/RingA.png"/>
    ...
    l'erreur est : the server encountered an internal error that prevented it from fulfilling this request
    voila maintenant j'essaie juste de rechercher le site qui appartient au RingA et afficher la page qui contient cet image (RingA.png).
    je pense que le problème est que la méthode affichRing() n'arrive pas à atteindre 'return null' puisque j'ai une redirection avant vers une autre page , mais je ne sais pas faire autrement , qui a une solution pour cela , c'est hyper urgent,
    et merci pour tous votre aide qui m'a permit d'atteindre ce modeste niveau

  2. #2
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut
    je ne sais pas si c'est difficile à resoudre ,mais j'espere qu'il ya un membre qui peut m'aider

  3. #3
    Membre chevronné Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Par défaut
    Slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      if(ring=="RingA")
            {
                FacesContext.getCurrentInstance().getExternalContext().dispatch("RingA.xhtml");
            }
    doit s'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      if("RingA".equals(ring))
            {
                FacesContext.getCurrentInstance().getExternalContext().dispatch("RingA.xhtml");
            }
    ...

    ++

  4. #4
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut
    malheureusement, il reste toujours le même problème :/

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    essaye la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if(ring=="RingA")
            {
                FacesContext.getCurrentInstance().getExternalContext().redirect("RingA.xhtml");
            }
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if(ring=="RingA")
            {
                FacesContext.getCurrentInstance().getExternalContext().dispatch("RingA.xhtml");
            }
    Peut être ça fonctionnera

  6. #6
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut
    Bonjour , j'arrive toujours pas à resoudre ce probleme, mais au je sais d'où vient ,
    Dans la methode affiche situé dans la classe transmissionDao à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ring=getBySite(site).getRing_CET();

    puisqu'il m'affiche
    at beans.TransmissionBean.getTransmissionBySite(TransmissionBean.java:34)
    at beans.TransmissionBean$Proxy$_$$_WeldClientProxy.getTransmissionBySite(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
    at javax.faces.component.UIData.getValue(UIData.java:732)
    at javax.faces.component.UIData.getDataModel(UIData.java:1811)
    at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
    at javax.faces.component.UIData.setRowIndex(UIData.java:473)
    at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:82)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:869)
    at javax.faces.component.UIData.encodeBegin(UIData.java:1133)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)


  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,
    Citation Envoyé par sorown Voir le message
    Dans la methode affiche situé dans la classe transmissionDao à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ring=getBySite(site).getRing_CET();
    Tu n'as pas mis l'erreur complète, donc difficile de dire avec précision quel est le problème exacte !
    Cependant, je peux te dire une chose c'est que "getBySite(site)" peux retourné null

    Donc si tu veux être sur que ca n'explose pas, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Transmission trans = getBySite(site);
    if (trans != null) {
       String ring = trans.getRing_CET();
       if("RingA".equals(ring)) {
          FacesContext.getCurrentInstance().getExternalContext().dispatch("RingA.xhtml");
       }
    }
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut
    Merci, ça resoud un peu le problème puisque j'ai plus l'erreur , mais maintenant la redirection ne se fait pas , même si que la recherche fonctionne bien ,il me renvoie toujours dans la même page

  9. #9
    Membre chevronné Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Par défaut
    C'est normal qu'il te renvoie vers la même page, en fait je pense qu'il reste sur le même page. Il faut ce poser la question à savoir
    - est ce normale que transmissionBean soit null?
    -- si non, il faut trouver pourquoi et s'assurer que ça n'arrivera jamais
    -- si oui, il faut peut-être mettre une gestion d'erreur en place avec un message clair pour l'utilisateur

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Erreur lors d"une redirection de page
    Par Pynouz dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/08/2011, 15h35
  2. [Flex4] Erreur lors de la redirection vers une page jsf
    Par amydinfo dans le forum Flex
    Réponses: 2
    Dernier message: 04/08/2010, 20h33
  3. Erreur lors de la redirection
    Par olgga dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2007, 00h02
  4. Erreur lors d'une redirection
    Par cels dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2006, 14h39
  5. Message Erreur lors d'une redirection
    Par TOPGUN89 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/08/2006, 16h00

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