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 de débutant


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut [NetBeans] pas d'exécution d'application cliente
    J'ai installé NetBeans 6.7.1. et son Glassfish V2.1.
    En m'inspirant d'un tuto de Patrice Secheresse, j'ai cuisiné un EJB sauce simpliste comme suit :
    L'interface remote :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    package Pako;
     
    import javax.ejb.Remote;
     
    @Remote
    public interface CalculetteRemote {
        int additionner(final int a, final int b);    
    }
    Ejb proprement dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package Pako;
     
    import javax.ejb.Stateless;
     
    @Stateless
    public class CalculetteBean implements CalculetteRemote {
     
        public CalculetteBean() {
        }
     
        public int additionner(final int a, final int b) {
            return a + b;
        }    
    }
    et le code client qui appelle l'ejb:
    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
    package calc_1;
     
    import Pako.CalculetteRemote;
    import javax.ejb.EJB;
     
    public class Main {
     
        @EJB
        private static CalculetteRemote calculetteBean;
     
        public Main() {
        }
     
        public static void main(String[] args) {
            System.out.println("Résultat " + calculetteBean.additionner(2,3));
        }    
    }
    Je contrôle dans le FireFox http://admin:4848/ que l'application est bien déployée ...

    et bing, quand je lance Main j'ai droit à un java.lang.NullPointerException
    sur le calculetteBean.additionner(2,3)

    Keske je fais de pas bien ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  2. #2
    Membre averti
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    Je pense que c'est la facon dont le project est cree, le code me semble correct: la partie client doit etre executee dans un conteneur client qui fournit tout le contexte. Si le projet est un simple projet java, cela ne marchera pas. Voir au debut du tutoriel comment le projet est cree. Sinon, il faut ajouter quelques fichiers jar et utiliser JNDI pour faire un look up (voir mon tout premier tutoriel).

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    @Patrice

    Merci de cette prompte réponse.

    Tout d'abord, j'ai suivi le conseil du tuto en choisissant bien "application entreprise". Dans Netbeans tout est bien organisé en 3 projets (client, serveur et général).

    Mais je me suis rendu compte que NB ne me laissait que le choix de faire un "Run file" dans l'application cliente et non pas un "Run project".
    En faisant une nouvelle installation sur un autre PC, le tout fonctionne correctement : l'EJB répond bien.

    En revenant sur ma première installation, NB a décidé tout seul comme un grand d'autoriser le "Run project".
    Maintenant il veut bien déployer mais refuse d'activer (pb de conflit de nom dans jndi me dit le journal de GF).

    Il s'agit donc d'un problème d'installation et de patouillage et non pas de codage.
    Je vais essayer de résoudre ça.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut Reprise du problème
    Bon, mon problème se précise :

    - si je déploie l'EJB sur le GlassFish localhost:4848 depuis NB 6.7.1 alors ça marche : je peux faire "Run main project" depuis le menu NB .

    - si je déploie l'EJB sur le GlassFish qui se trouve sur un serveur MonServeur:4848 depuis NB 6.7.1 alors ça ne marche pas : je NE peux PAS faire "Run main project" depuis le menu NB .
    (bien entendu j'ai soigneusement vérifié que l'EJB était bien déployé)

    En résumé :
    - en local = oui (poste Windows WP)
    - sur le serveur = non (serveur Windows 2000)

    Quelqu'un aurait-il une idée sur ce phénomène para-normal ?

    config :
    - local = poste Windows WP
    - serveur = serveur Windows 2000
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je pense que le problème est lié à ton contexte initial (JNDI).
    Pour un client distant, il faudra paramétrer l'équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
    env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389");
    env.put(Context.SECURITY_PRINCIPAL, "...");
    env.put(Context.SECURITY_CREDENTIALS, "...");
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut C'est pas simple ...
    Bon, je suppose que mon problème est que je ne connais rien au système de
    localisation par java des EJB3 dont mon application a besoin.

    Je me doutais bien qu'il n'y a rien de magique et qu'il faut bien fournir une information indiquant le serveur, le domaine et l'ejb3.
    Un peu comme dans JDBC, il faut fournir la chaîne de connexion + la requête SQL pour avoir quelque chose ...

    le tuto de Patrice Secheresse est excellent mais ne fait aucune allusion au problème de connexion.

    Quelque bonne âme aurait-elle la bonté de m'indiquer un tuto ou une piste pour que
    j'apprenne à paramétrer mon application pour qu'elle utilise des EJB3 distants ?

    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2010, 00h09
  2. [Débutant] Erreur java.lang.NullPointerException
    Par Kevin12 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/02/2007, 15h48
  3. [débutant] NullPointerException ?
    Par Epistocles dans le forum Langage
    Réponses: 5
    Dernier message: 02/01/2007, 21h04
  4. [Débutant(e)] [JTextArea] NullpointerException
    Par harris_macken dans le forum Composants
    Réponses: 9
    Dernier message: 13/06/2005, 13h22
  5. [Débutant]NullPointerException
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2004, 13h58

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