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

Java EE Discussion :

NullPointerException avec createNamedQuery()


Sujet :

Java EE

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Par défaut NullPointerException avec createNamedQuery()
    Bonjour tout le monde,

    j' ai cree une petite application ejb.

    Pour le moment j'ai fait un formulaire de login avec deux champs (user,mdp):
    public class Login extends javax.swing.JFrame {
    @EJB
    private static CommunicationRemote communicationBean;

    Client ClientConnecte;
    /** Creates new form Login */
    public Login() {
    initComponents();
    communicationBean=new CommunicationBean();
    }
    private void LoginActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    if(!TxtUser.getText().equals("") && !TxtPass.getText().equals(""))
    {
    try {
    communicationBean.findByUserMdpAdmin(TxtUser.getText(), TxtPass.getText());
    System.out.println("Administrateur connecté");
    LInfo.setText("Info :Connection Réussie");


    } catch (ExceptionCommunication ex) {
    LInfo.setText(ex.getMessage());
    }
    }
    }
    Mon Bean Session:
    @Stateful
    @EJB
    public class CommunicationBean implements CommunicationRemote {
    @EJB
    private AdministratorFacadeLocal administratorFacade=new AdministratorFacade();

    ...
    public void findByUserMdpAdmin(String user, String pass) throws ExceptionCommunication{
    Administrator c= administratorFacade.findByUserMdp(user, pass);
    }
    ...
    Ma facade Administrator :

    @Stateless
    public class AdministratorFacade implements AdministratorFacadeLocal {
    @PersistenceContext
    private EntityManager em;
    ...
    public Administrator findByUserMdp(String user, String pass) throws ExceptionCommunication{
    try
    {
    System.out.println("Login:"+user.toString()+" /Pass:"+pass.toString());
    Query qu=null;
    qu=em.createNamedQuery("Administrator.findUserMdp");
    qu.setParameter("login", user);
    qu.setParameter("password", pass);
    return (Administrator) qu.getSingleResult();
    }
    catch(NoResultException e)
    {
    throw new ExceptionCommunication("Login/Password Incorrect(s)");
    }
    }
    ...
    C est a cette ligne: qu=em.createNamedQuery("Administrator.findUserMdp"); que j obtient l erreur suivante : Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException.


    Mon Entity creer avec netbeans (BD oracle):

    @Entity
    @Table(name = "ADMINISTRATOR")
    @NamedQueries({@NamedQuery(name = "Administrator.findUserMdp",
    query = "SELECT c FROM ADMINISTRATOR c WHERE c.login = :login and c.password = :password" ),...})

    public class Administrator implements Serializable {
    private static final long serialVersionUID = 1L;
    @Column(name = "LOGIN", nullable = false)
    private String login;
    @Column(name = "PASSWORD", nullable = false)
    private String password;
    @Id
    @Column(name = "IDADMIN", nullable = false)
    private BigDecimal idadmin;

    public Administrator() {
    }
    ...
    Est-ce que quelqu'un sait pourquoi j'obtient toujours le NullPointerException?

    Merci

  2. #2
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    il faudrait nous montrer plus de logs.

    Sinon assures-toi que user et pass ne sont pas nuls.

  3. #3
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class Login extends javax.swing.JFrame {
    @EJB
    private static CommunicationRemote communicationBean;
     
    [...]
    Es-tu bien dans un conteneur ACC afin d'assurer l'injection de dépendance dans ton client swing (par exemple JWS avec Glassfish) ? Sinon ca va effectivement provoquer une exception de pointeur null sur ton EJB.

    Est-ce que ta classe Login est la classe d'entrée du programme (contient la méthode main()) ? Cela est nécessaire avec un conteneur ACC.

    Sinon il faudrait effectivement nous donner au moins le code d'erreur complet avec la stacktrace si tu veux que l'on puisse comprendre.

  4. #4
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Par défaut
    Voici l erreur complete :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Entite.AdministratorFacade.findByUserMdp(AdministratorFacade.java:55)
    at Communication.CommunicationBean.findByUserMdpAdmin(CommunicationBean.java:61)
    at sessionejb.Login.jButton1ActionPerformed(Login.java:201)
    at sessionejb.Login.access$100(Login.java:18)
    at sessionejb.Login$2.actionPerformed(Login.java:132)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6041)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5806)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Component.dispatchEventImpl(Component.java:4413)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4243)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.java:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2440)
    at java.awt.Component.dispatchEvent(Component.java:4243)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    Les valeurs de user et password ont bien les valeurs entree avant l appel de la methode createNamedQuery.

    La classe d entree du programme est la classe main :

    public class Main {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic here
    Login log=new Login();
    log.setVisible(true);
    }

    }

  5. #5
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Entite.AdministratorFacade.findByUserMdp(AdministratorFacade.java:55
    Qu'est-ce qu'il y a à la ligne 55 de AdministratorFacade.java ? Tu peux aussi lancer ton appli en debug mode avec un point d'arrêt sur cette ligne pour voir qu'est ce qui est null et ne devrait pas ! Il faut surement lancer ton serveur d'application en mode debug pour mettre un point d'arrêt côté serveur. Mais suivant le contenu de la ligne ce n'est peut-être pas indispensable... et cela dépend de ton IDE/serveur d'application.

Discussions similaires

  1. [Struts-Layout] NullPointerException avec le datagrid
    Par john_wili dans le forum Struts 1
    Réponses: 10
    Dernier message: 22/03/2009, 19h13
  2. java.lang.NullPointerException avec sum
    Par newmar dans le forum Hibernate
    Réponses: 2
    Dernier message: 03/06/2008, 16h20
  3. NullPointerException avec des ArrayList
    Par Mchupakabra dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/04/2008, 21h48
  4. nullPointerException avec JBoss et Log4j
    Par ]matmat[ dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 03/05/2007, 17h33
  5. NullPointerException avec Graphics?
    Par charaf dans le forum Graphisme
    Réponses: 7
    Dernier message: 20/06/2006, 11h25

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