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

Weblogic Java Discussion :

Erreur "java.lang.NullPointerException" findViewObject Object view


Sujet :

Weblogic Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut Erreur "java.lang.NullPointerException" findViewObject Object view
    Bonjour,

    J'ai créé un object view
    Entete
    qui est basé sur quatre tables.
    Dans la partie Data Control AppModuleDataControl de JDeveloper, j'ai le nom.
    Entete1 comme objet.
    Alors dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public static ApplicationModuleImpl getApplicationModule() {
     
                return (ApplicationModuleImpl)ADFUtils.getApplicationModuleForDataControl("AppModuleDataControl");
         }
    qui doit me permettre d'avoir les données de cet object view.

    Mais à l'exécution j'ai l'erreur:
    javax.faces.FacesException: oracle.adf.controller.ControllerException: ADFC-10001: impossible d'instancier la classe 'com.redsamurai.view.beans.DoPreForm'
    at oracle.adfinternal.controller.util.Utils.createAndLogFacesException(Utils.java:196)

    Caused By: java.lang.NullPointerException
    at com.redsamurai.view.beans.DoPreForm.findData(DoPreForm.java:38)
    at com.redsamurai.view.beans.DoPreForm.<init>(DoPreForm.java:34)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    Je précise que dans mon data control, j'ai un seul object view
    Entete1
    Voici le code où ça plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public void findData(){
            ViewObject view = (ViewObject) Utilities.getApplicationModule().findViewObject("Entete1"); 
            view.setNamedWhereClauseParam("p_user",Utilities.getCurrentUser());  
            view.executeQuery();
            //Row row = view.first();
            EnteteRowImpl row = (EnteteRowImpl)view.first();
            this._username    = (String)row.getlogin();
            this._password    = (String)row.getpwd();
            this._code_poste  = (String)row.getpc_code();
            this._poste       = (String)row.getpc_code()+'-'+(String)row.getpc_libelle();
            this._service     = (String)row.getprofil_liibelle()+"-"+row.getdate_debut()+"-"+row.getdate_fin();
            //this._fonction = (String)row.getAttribute(getFonction());
            this._agent       = (String)row.getmatricule()+"-"+(String)row.getnom()+" "+(String)row.getprenom();
        }
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    A vu de nez je ne vois que 2 possibilités,
    - Soit Utilities.getApplicationModule() te renvoie null
    - Soit la ViewObject "Entete1" n'est pas référencé dans ton module d'application, auquel cas c'est normal qu'il te renvoie null.

    Dans quel contexte est cette méthode est exécutée ?

    Peux tu nous montrer la structure de ta classe Entete1 ?

    Cdt.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    A vu de nez je ne vois que 2 possibilités,
    - Soit Utilities.getApplicationModule() te renvoie null
    - Soit la ViewObject "Entete1" n'est pas référencé dans ton module d'application, auquel cas c'est normal qu'il te renvoie null.

    Dans quel contexte est cette méthode est exécutée ?

    Peux tu nous montrer la structure de ta classe Entete1 ?

    Cdt.
    Effectivement comme vous l'avez dit Utilities.getApplicationModule() me renvoie null.
    J'ai utilisé les deux classes ADFUtils et JSFUtils pour recuperer l'aaplication module à travers la méthode getApplicationModuleForDataControl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Utilities {
     
    public static ApplicationModuleImpl getApplicationModule(){
     return (ApplicationModuleImpl) ADFUtils .getApplicationModuleForDataControl("AppModuleDataControl");
    }
     
    }
    Images attachées Images attachées  

  4. #4
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Bon on ne voit pas grand chose sur ta photo mais au vu de ta méthode getApplicationModule j'en déduis que tu n'a qu'un seul module d'application.

    Si c'est effectivement le cas tu dois pouvoir utiliser cette ligne pour le récupérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void findData(){
       ApplicationModuleImpl am = (ApplicationModuleImpl )BindingContext.getCurrent().getDefaultDataControl().getApplicationModule();
    ....

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    J'ai mis un fichier attaché au msg précédent montrant clairement mon data control et la object view

  6. #6
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Si Entete1 hérite bien d'une ViewObjectImpl tu dois pouvoir appeler directement getApplicationModule();

    Edit : moi ce que je veux savoir c'est quelle classe contient cette méthode findData

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    J'ai mis en fichier joint l'image pour la description de mon object view
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 31/05/2011, 10h40
  2. erreur compilation java.lang.NullPointerException
    Par muslim1987 dans le forum JDBC
    Réponses: 6
    Dernier message: 26/06/2008, 09h16
  3. Erreur exception java.lang.NullPointerException
    Par geol99 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 20h24
  4. erreur de java.lang.NullPointerException
    Par vince351 dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2007, 12h29

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