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

Glassfish et Payara Java Discussion :

lookup dans le jndi


Sujet :

Glassfish et Payara Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut lookup dans le jndi
    Bonjour à tous !

    J'au un souci de connection avec mon JDNI

    Je fais ceci
    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
     
    public class ClassA {
           private static javax.sql.DataSource ds = null
     
     
          public static void main (String[] arg ) {
               try{
                      Context ct = new InitialContext();
                      System.out.println("Démarrage de ressource via JNDI");
                      ds = (DataSource) ctx.lookup("jdb/nameJndi"); 
                      System.out.println("La ressource a été récupérée");
               } catch (Exception e) {
                          System.out.println(e.getMessage());
    		}
     
          }
     
    }

    J'AI CE MESSGAE D'ERREUR :

    Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial


    J'ai tester la pool de connexion par un ping, c'est marche correctement.
    J'ai regardé égalément le nom dans le nommage du jndi; là aussi il ne semble pas avoir de soucis à ce niveau.

    Quelqu'un peut m'aider à résoudre mon soucis ?

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Il te manque les propriétés de l'InitialContext...
    Quel est la factory utilisée, le package, l'hote, le port?
    Ton programme ne peut pas le deviner tout seul.

    Si tu bosses en local et avec Eclipse (je suppose que c'est similaire avec Netbeans) tu peux ajouter à ton projet le Runtime Environment de Glassfish et ça fonctionnera sans aucune modif.

    En cadeau un lien du forum qui traite de çà:

    http://www.developpez.net/forums/d44...ndi-glassfish/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Qu'on se régale bien sur ce site !! Merci Heimdal pour ta réponse !! Je suis sur GlassFissh, je teste et je t'envoie un retour dans quelques minutes !! Je suis nouveau sur ce site. Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Je suis de retour Heimdal ! J'ai jeté un coup d'oeil sur le lien que tu m'as donné !!

    Le root de GlassFish, c'est bien le config du domain ? je ne vois pas le fichier jndi.properties.

    je suis sur un projet mavenisé (maven). J'ai fais un click droit sur la librairie mais le menu contextuel ne me propose pas de rajouté un Runtime. Alors, je pense que le paramètrage doit se faire dans le pom.xml


    Peux-tu m'éclairer sur ces deux point ?
    Si quelqu'un autre connais la réponse, je suis dispo !

    Merci d'avance !

  5. #5
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Ok tu utilises Maven...

    Dans ce cas, fais un maven install de appserv-rt.jar (Dans glassfish/lib c'est dans ce jar qu'il y a le jndi.properties) et ajoutes ce nouvel artifact comme dépendances de ton projet.

    Dans mes souvenirs il y a d'autres jars à importer. Si c'est le cas, fais toi guider par les ClassNotFoundException en farfouillant dans les jars appserv-** .

    Prévoir le plugin assembly ou shade si tu veux exporter ton projet en jar exécutable.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Merci Heimdal

    Je teste et te tiens au courant de la suite ! Que ça fonctionne ou pas.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Je suis de retour Heimdal !

    En fait, mon projet contient un module ejb dans lequel je fait le lookup.

    Dans le pom de ce module je rajoute ceci :

    <dependency>
    <groupId>org.glassfish.extras</groupId>
    <artifactId>appserv-rt</artifactId>
    <version>3.0</version>
    </dependency>

    Le jar est chargé. Dans ce jar je ne vois que trois fichiers :

    pom.properties dont le contenu est :
    #Generated by Maven
    #Mon Dec 07 01:51:22 PST 2009
    version=3.0
    groupId=org.glassfish.extras
    artifactId=appserv-rt

    pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.glassfish.extras</groupId>
    <artifactId>appserv-rt-pom</artifactId>
    <version>3.0</version>
    <relativePath>../pom.xml</relativePath>
    </parent>

    <name>GlassFish appserv-rt.jar</name>
    <artifactId>appserv-rt</artifactId>
    <packaging>jar</packaging>
    <build>
    <plugins>
    <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
    <archive>
    <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
    </archive>
    </configuration>
    </plugin>
    </plugins>
    </build>
    </project>

    MANIFEST.MF
    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Created-By: Apache Maven
    Built-By: java_re
    Build-Jdk:
    GlassFish-ServerExcluded: true
    Class-Path: ../modules/gf-client.jar


    Ensuite je fais la connetion lookup mais j'obtiens toujours le même mesage :

    Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial


    C'est vraiment une casse tête pour moi. Aidez moi svp, c'est urgent !!!!

  8. #8
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Je crois que je ne comprends pas vraiment ce que tu veux faire...
    Pourrais-tu être plus précis?

    Si c'est un projet ejb:
    - pas besoin d'utiliser l'InitialContext pour faire des lookup, l'injection suffit amplement.
    - pas de classe main car ça n'a aucun sens
    - pas besoin de bricoler le build maven avec des imports que glassfish te fournira au runtime...


    Question subsidiaire: Quelle version de glassfish?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Bonjour Heimdal


    Pour être plus claire dans ma requête, dans mon projet ear, j'ai un module ejb danb lequel j'utilise InitialContext.

    Oui, tu as raison pour la classe main car le lookup est géré dans le serveur.

    Je n'ai pas touché le build maven.

    J'utilise la version 6.9 de netbeans.


    Je constate par exemple lorsque je cré un projet web (war), je vois glassfish dans la librairie de mon projet. En revanche, quand je crée un ear, je ne vois plus glassfish dans la livrairie. je ne vois pas du tout comment rajouter le runtime (glassfish) dans la livraire de mon projet ear (mavenisé) !

    Merci d'avance

  10. #10
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Normalement tu as juste a créer un projet Maven.

    Ce dernier est de type pom et contient deux modules. Un de type EJB avec dépendendance type provided vers JEE5, l'autre de type EAR avec une dépendance vers le projet EJB.
    Avec un projet Maven, pas de chinoiseries avec les librairies (Runtime environment, edition du classpath...), c'est les Maven dependencies qui font le boulot.

    Ensuite tu build ton projet ear, tu déploies et tt devrait bien se passer.

    Une fois déployé, new InitialContext() devrait fonctionner sans paramètre aucun.
    Après on lui préfèrera l'utilisation des annotations :
    @Resource(mappedName="jndi/nom/ressource") pour récupérer des ressources du serveur d'appli,
    @EJB pour injécter un EJB,
    @PersistenceContext pour récupérer le contexte de persistance si tu utilises JPA.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup Heimdal !!

    Tout marche à merveille !!!


    résolu !

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

Discussions similaires

  1. lookup dans le jndi
    Par coolcoolcool dans le forum Général Java
    Réponses: 2
    Dernier message: 25/08/2010, 15h34
  2. Comment afficher un LookUp dans un DBGrid à l’execution ?
    Par nanolo dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/09/2008, 14h52
  3. [Lazarus] Champ LookUp dans un TDBGrid
    Par SSJ17Vegeta dans le forum Lazarus
    Réponses: 1
    Dernier message: 14/09/2008, 19h26
  4. WAS 6 : déclaration d'une ressource dans le JNDI
    Par elewandowski dans le forum Websphere
    Réponses: 6
    Dernier message: 11/12/2007, 17h43
  5. [EJB3] Deploiement ... rien dans le JNDI View de JBoss...
    Par yakamax dans le forum Java EE
    Réponses: 6
    Dernier message: 26/05/2006, 15h58

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