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 :

javax.servlet.ServletException: binding="#{customerAction.outputPanel}": javax.ejb.EJ


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut javax.servlet.ServletException: binding="#{customerAction.outputPanel}": javax.ejb.EJ
    Bonjour à tous,

    j'ai un problème d'exécution qui me dérrange il ya quelque jours et dont je voudrais quelqu'un qui puisse m'aider.

    j'ai implémenté une page .xhtml contenant une balise <a4j:outputpanel> et un panelMenu. le outputPanel est bindé (par l'attribut binding) vers la class htmlA4joutputPanel de mon backing bean. Lorsque j'execute l'application la page d'acceuil s'affiche sans problème, mais dés que je clique sur un panelMenuItem implémenté dans la même page, un message d'erreur s'affiche indiquant que la cause provient bien de l'outputPanel bindé.
    j'ai éssayé à résoudre le problème et j'arrive pas à résoudre le problème.
    ca me fait vraiment un grand palisir si quelqu'un peut m'aider.

    je vous transmet ma page .xhtml

    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
    <h:form id="customerForm">
     
            <h:panelGrid columns="2" columnClasses="cols" width="100%" border="1" cellspacing="0">
     
                     <rich:panelMenu style="width:200px"  mode="server"
                    iconExpandedGroup="disc" iconCollapsedGroup="disc" 
                    iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right" 
                    iconCollapsedTopGroup="chevronDown" iconCollapsedTopPosition="right" >
                        <rich:panelMenuGroup label="Products">
     
                            <c:forEach items="#{customerAction.searchOrderLine()}" var="prod" varStatus="s">
    <!-- le panelMenuitem updatele outputPanel par la fonction upadateOutputPanel() et fait un listener qui marche bien-->
                                <rich:panelMenuItem label="#{prod.name}" actionListener="#{customerAction.searchServiceProduct}"
    action="#{customerAction.updateOutputPanel()}">
     
                                        <f:param id="id#{s.index}" name="productId" value="#{prod.productId}"/>       
                                </rich:panelMenuItem>
                            </c:forEach>
     
                        </rich:panelMenuGroup>
                    </rich:panelMenu>
     
                        <a4j:outputPanel id="outputPanel" rendered="true" binding= "#{customerAction.outputPanel}">
                        </a4j:outputPanel>
     
            </h:panelGrid>
        </h:form>
    je vous transmet mon backingBean
    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
    @Stateful
    @Scope(ScopeType.SESSION)
    @Name("customerAction")
    public class CustomerActionBean implements CustomerActionLocal {
    private HtmlAjaxOutputPanel outputPanel = new HtmlAjaxOutputPanel();
     
    public void updateOutputPanel() {
     
           HtmlDataTable dataTable = new HtmlDataTable();
     
            HtmlColumn columnName, columnAmount;
     
            dataTable.setValue("#{characteristicServiceProduct}");
            dataTable.setVar("chSePr");
     
            columnName = new HtmlColumn();
            HtmlOutputText outputTextName = new HtmlOutputText();
            outputTextName.setValue("#{chSePr.characteristic.name}");
            log.info("name =#0",outputTextName.getValue()  );
            columnName.getChildren().add(outputTextName);
     
            columnAmount = new HtmlColumn();
            HtmlOutputText outputTextAmount = new HtmlOutputText();
            outputTextAmount.setValue("#{chSePr.amount}");
            log.info("amount =#0",outputTextAmount.getValue()  );
            columnAmount.getChildren().add(outputTextAmount);
     
            dataTable.getChildren().add(columnName);
            dataTable.getChildren().add(columnAmount);
            getOutputPanel().getChildren().add(dataTable);
            getOutputPanel().setRendered(false);
            outputPanel.saveState(FacesContext.getCurrentInstance());
     
        }
    pourtant que j'ai presque mis tout le contenu de la methode updateOutputpanel() en commentaire, l'erreur reste la même et l'erreur indique que la faute vient de l'ejb (EJBException),
    l'erreur 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
    javax.ejb.EJBException
            at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3869)
            at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3769)
            at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571)
    .....
    Caused by: org.jboss.seam.RequiredException: @In attribute requires non-null value: customerAction.em
            at org.jboss.seam.Component.getValueToInject(Component.java:2168)
            at org.jboss.seam.Component.injectAttributes(Component.java:1598)
            at org.jboss.seam.Component.inject(Component.java:1416)
     
    javax.el.ELException: /pages/users/Customer.xhtml @69,116 binding="#{customerAction.outputPanel}": javax.ejb.EJBException
    at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:101)
    ....
    Caused by: javax.ejb.EJBException
            at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3869)
            at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3769)
    je tient à présicer aussi, que si j'enlève le binding de outputPanel l'exécution fonction sans problème et même le panelMenuItem actionListener fonctione bien et je reçois les message de log avec les bonne variable

    merci çà tous

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    d'abord:
    private HtmlAjaxOutputPanel outputPanel = new HtmlAjaxOutputPanel();
    C'est pas comme çà qu'on crée un composant en JSF. Tu dois mettre un setter et un getter pour ton ajax panel, dans ton bean et c'est jsf qui appelera le setter avec ce qui proviens de la page web, si le getter renvoie null. Si tu veux absolument le créer toi meme (parce que config spéciale ou autre), il faut passer par FacesContext.getApplication().createComponent(). Les Composant
    JSF on besoin d'un initialisation par le framework et le framework a besoin de les comptabiliser.

    Ensuite, vu ta rootcause, je te suggère de transférer la requete sur un forum plus approprié (Seam), t'aura plus de chance de trouver une bonne ame

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/11/2011, 15h53
  2. struts erreur javax.servlet.ServletException
    Par catherine* dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/08/2007, 08h50
  3. Réponses: 7
    Dernier message: 19/07/2006, 14h43
  4. [SERVLET]javax.servlet.ServletException
    Par Devil666 dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 10/06/2005, 11h50

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