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 :

StackOverflow due à une exception qui ne passe pas par un bloc catch


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 34
    Points : 41
    Points
    41
    Par défaut StackOverflow due à une exception qui ne passe pas par un bloc catch
    Bonjour,

    J'ai un soucis d'une exception qui se lève lorsque j'attaque une méthode d'un EJB qui doit me retourner une instance d'un objet.

    Lorsque la méthode vendorService.getByWorkflowId(this.workflowId); me retourne bien une instance d'un objet , je n'ai pas de soucis. Seulement lorsque le workflow n'existe pas une exception est renvoyée ( du moins c'est ce que l'interface me dit ) et devrait être normalement renvoyée. Ce que je souhaiterais faire est de renvoyer un message sur ma page. Seulement ni la page est affichée et j'ai ceci qui s'affiche.

    J'ai beau cherché , je n'arrive pas à trouver de solution.

    Le problème à la source est que je recois un id qui initialise un attribut de mon managedBean. A partir de cette id , je dois également initialisé un autre objet afin que celui-ci puisse être exploité dans ma page jsf.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    java.lang.StackOverflowError
    	at java.lang.ClassLoader.checkPackageAccess(ClassLoader.java:336)
    	at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:522)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    Il semblerait que l'exception ne passe pas dans mon bloc catch ( j'ai tenté avec Exception à la place de BusinnessException).

    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
     
      <managed-bean>
        <managed-bean-name>approverBean</managed-bean-name>
        <managed-bean-class>com.agc.sapvendor.ApproverBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
          <property-name>vendorService</property-name>
          <value>#{VendorService}</value>
        </managed-property>
        <!-- This must come after the vendor service -->
        <managed-property>
          <property-name>workflowId</property-name>
          <value>#{param.workflowId}</value>
        </managed-property>
      </managed-bean>
    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
     
    public class ApproverBean {
     
    .....
    private Vendor vendor;
    .....
        public Vendor getVendor(){
     
            if (workflowId != null){
                workFlow = findWorkflow();
                this.vendor = workFlow.getVendor();
                this.requestedVendorId = vendor.getId();
            }
            return vendor;
        }
        private Workflow findWorkflow(){
     
            Workflow wk  = null;
            try{
                logger.debug("try to find workflow :"+this.workflowId);
                wk = vendorService.getByWorkflowId(this.workflowId);
                logger.debug("Find workflow :"+wk);
            }catch(BusinessException e){
                logger.debug("Worflow Not exist");
                FacesContext.getCurrentInstance().addMessage( null, new FacesMessage( FacesMessage.SEVERITY_ERROR, translator.translate( "message.data-no-exist" ), null ) );
            }finally{
                return wk;
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public Workflow getByWorkflowId( String id ) throws BusinessException;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SEVERE: [WorkflowDao:public com.agc.sapvendor.model.Workflow com.agc.sapvendor.dao.WorkflowDaoImpl.getById(java.lang.String)] exception occurred during method invocation: javax.ejb.TransactionRolledbackLocalException: javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.; nested exception is: javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
    javax.ejb.TransactionRolledbackLocalException: javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.; nested exception is: javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
    javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 34
    Points : 41
    Points
    41
    Par défaut
    Problème résolu et nettoyage de cette horreur syntaxique, le problème venait de l'implémentation du service qui renvoyait null , au lieu d'une exception ( je m'en vais frap... celui qui a écrit ca avec une javadoc contraire )

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

Discussions similaires

  1. une requète qui ne passe pas
    Par JeanNoel53 dans le forum SQL
    Réponses: 0
    Dernier message: 14/12/2010, 10h47
  2. [CSS 2.1] Une image qui ne bouge pas par rapport à la résolution de l'écran
    Par beegees dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 01/02/2010, 13h45
  3. Réponses: 2
    Dernier message: 06/09/2007, 09h23
  4. Jointure simple qui ne passe pas par les index ?!
    Par souch dans le forum Oracle
    Réponses: 13
    Dernier message: 24/07/2007, 17h03
  5. Impression vers une imrimante qui n'est pas par défaut
    Par abdelghani_k dans le forum Delphi
    Réponses: 5
    Dernier message: 22/05/2007, 12h07

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