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

Wildfly/JBoss Java Discussion :

[EJB3] [JBOSS4] javax.naming.NameNotFoundException


Sujet :

Wildfly/JBoss Java

  1. #21
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    C'est quoi tes propriétés JNDI ?
    Dans le code que tu as montré au début tu as mis System.getProperties()) ce qui n'est pas correcte.

    Si le code d'appel est en dehors de JBoss AS
    utilises un fichier jndi.properties avec ça dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=localhost:1099

  2. #22
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par XmasRock
    C'est quoi tes propriétés JNDI ?
    Dans le code que tu as montré au début tu as mis System.getProperties()) ce qui n'est pas correcte.

    Si le code d'appel est en dehors de JBoss AS
    utilises un fichier jndi.properties avec ça dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=localhost:1099
    En fait j'ai bien mis ce .properties...

    J'ai rajouté après coup le System.getProperties() car le .properties n'a rien changé... J'ai supprimé le System.getProperties() j'ai toujours le même problème...

    Merci de ton aide

  3. #23
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Tu peux uploader ton appli ?
    Tu veux une appli d'exemple d'appel qui fonctionne ?

  4. #24
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par XmasRock
    lookup("Jee/StoreManagerBean/local")
    ou
    lookup("Jee/StoreManagerBean/remote")
    Essaie plutot : archiveEAR/StoreManagerBean/remote

    Où archiveEAR est le nom de ton fichier archive déployé (sans le .ear). Avec Eclipse, le nom de l'archive, c'est le nom du projet...

  5. #25
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    J'ai dans l'idee que l'archive s'appelle

  6. #26
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Citation Envoyé par ®om
    En fait j'ai bien mis ce .properties...

    J'ai rajouté après coup le System.getProperties() car le .properties n'a rien changé... J'ai supprimé le System.getProperties() j'ai toujours le même problème...

    Merci de ton aide
    On est bien d'accord, le fichier jndi.properties est dans ton classpath ?
    Sinon, tu peux le faire dans le code de ton client, mais ça devrait être idem.

  7. #27
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par Claythest
    Essaie plutot : archiveEAR/StoreManagerBean/remote

    Où archiveEAR est le nom de ton fichier archive déployé (sans le .ear). Avec Eclipse, le nom de l'archive, c'est le nom du projet...
    Si je respecte cette règle de nommage, ça m'écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.naming.NameNotFoundException: Jee not bound

  8. #28
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Ah j'ai résolu enpartie le problème, il fallait mettre en attribut de @Stateless pas seulement name, mais aussi mappedName.

    Maintenant, j'ai un problème lors du lookup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctx.lookup("Jee/StoreManagerBean");
    ça me renvoie un objet de type NamingContext, alors que ça devrait être un StoreManagerLocal...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.ClassCastException: org.jnp.interfaces.NamingContext cannot be cast to ejb.StoreManagerLocal

  9. #29
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    ajoutes juste "/remote" à la fin et c'est bon (c'est ce que tu vois dans la console JMX) ---> ctx.lookup("Jee/StoreManagerBean/remote");



    Cela dit, tu ne devrais pas avoir besoin de préciser quoique ce soit vu que ce sont les valeurs par défaut.

  10. #30
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par XmasRock
    ajoutes juste "/remote" à la fin et c'est bon (c'est ce que tu vois dans la console JMX) ---> ctx.lookup("Jee/StoreManagerBean/remote");



    Cela dit, tu ne devrais pas avoir besoin de préciser quoique ce soit vu que ce sont les valeurs par défaut.
    Ah ok merci, en fait il fallait ajouter "/local"

    Car je veux le récupérer en local. Là ça marche...

    Maintenant (et oui, dès qu'on corrige une erreur, il y en a une autre derrière), sur storeManager.addStore(new StoreBean("monMagasin"));, j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [JDBCExceptionReporter] Table not found in statement [insert into StoreBean (id, name) values (null, ?)]
    javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [ejb.StoreBean]
    Je ne gère pas la base à la main, g laissé configuré par défaut pour HSQL, donc je ne vois pas d'où ça vient

  11. #31
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Résolu, il fallait faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <persistence>
    	<persistence-unit name="StoreManagerBean">
    		<jta-data-source>java:/DefaultDS</jta-data-source>
    		<properties>
    			<property name="hibernate.dialect"
    				value="org.hibernate.dialect.HSQLDialect" />
    			<property name="hibernate.hbm2ddl.auto" value="create-drop" />
    		</properties>
    	</persistence-unit>
    </persistence>
    dans persistence.xml.

    Merci à tous

  12. #32
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Encore une question à laquelle je n'ai pas de réponse, on ne peut pas virer le fichier persistence.xml et utiliser des annotations à la place?

  13. #33
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Il n'y a pas de rapport entre le nommage de l'ejb stateless et le nom de la configuration de l'entityManager.

    Persistence.xml est le seul fichier xml qui est nécessaire. C'est celui qui permet de définir les parametres de l'entityManager que le conteneur injecte en fonction du nom que tu places dans ton objet qui manipule les EJB Entités.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       @PersistenceContext(unitName="StoreManagerBean") private EntityManager em;
    Je te conseille de ne pas l'appeler ainsi. Ce fichier permet de pointer vers une datasource.

  14. #34
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par XmasRock
    Il n'y a pas de rapport entre le nommage de l'ejb stateless et le nom de la configuration de l'entityManager.

    Persistence.xml est le seul fichier xml qui est nécessaire. C'est celui qui permet de définir les parametres de l'entityManager que le conteneur injecte en fonction du nom que tu places dans ton objet qui manipule les EJB Entités.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       @PersistenceContext(unitName="StoreManagerBean") private EntityManager em;
    Je te conseille de ne pas l'appeler ainsi. Ce fichier permet de pointer vers une datasource.
    Apparemment c'est le nom qu'il faut donner si tu ne mets pas de paramètres à PesistenceContext:
    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
    @Stateless
    @NamedQuery(name = "findAll", query = "SELECT st FROM Store st")
    public class StoreManagerBean implements StoreManager, StoreManagerLocal {
     
        @PersistenceContext
        private EntityManager em;
     
        @SuppressWarnings("unchecked")
        public List<Store> getStores() {
            return em.createNamedQuery("findAll").getResultList();
            // return em.createQuery("SELECT st FROM Store st").getResultList();
        }
     
        public void addStore(Store s) {
            em.persist(s);
        }
     
    }

  15. #35
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Ah non, quelque soit le nom que je mette dans le xml, ça marche... à quoi sert donc ce nom?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <persistence-unit name="manager">
    S'il n'y a qu'un persistence-unit, il doit automatiquement être utilisé...

  16. #36
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Sans doute qu'il doit y avoir un comportement par défaut. Mais dans ce cas précis, je pense qu'il vaut mieux savoir quelles valeurs tu utilises en précisant le nom de la config dans l'attribut de l'annotation.

  17. #37
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut interressant
    C'est une discution trés intéressante, j'ai exactement le même probleme a propos du JNDI ... je vais continuer a plonger dessus pour trouvé le nom du JNDI :s

  18. #38
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Citation Envoyé par skrosoft
    C'est une discution trés intéressante, j'ai exactement le même probleme a propos du JNDI ... je vais continuer a plonger dessus pour trouvé le nom du JNDI :s
    Je comprend pas pourquoi tu cherches.
    L'objet de ce thread c'est justement d'avoir précisé cette valeur.
    Y a qque chose que j'ai pas suivi ?

  19. #39
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    J'ai aussi le meme probleme, avec netbeans 5.5 et jboss 4.0.4 et meme chose avec Jboss 4.0.5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    10:51:26,783 WARN [ServiceController] Problem starting service persistence.units:ear=EAW1.ear,jar=EAW1-ejb.jar,unitName=EAW1-ejbPU 
    javax.naming.NameNotFoundException: mysql-EAW not bound
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    --- MBeans waiting for other MBeans --- 
    ObjectName: persistence.units:ear=EAW1.ear,jar=EAW1-ejb.jar,unitName=EAW1-ejbPU 
    State: FAILED 
    Reason: javax.naming.NameNotFoundException: mysql-EAW not bound 
    I Depend On: 
    jboss.jca:service=ManagedConnectionFactory,name=mysql-EAW
    mysql-EAW, c'est le nom que j'ai donné a mon data source qd j'ai créé la persistence unit dans netbeans: voir http://imacx.ath.cx/img/eaw-mysql.jpg


    Et ce qui est aussi bizarre, c'est que rien concernant mes ejb n'apparait dans la jmx console que je liste les services jndi.

    Merci pour votre aide

  20. #40
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Poses ta question dans un sujet à part (bouton "Nouvelle Discussion") stp.
    Ca rend la vie plus facile à ceux qui cherchent
    Et quand tu le feras, attaches ton fichier server.xml et ton fichier xxx-ds.xml où tu decris ta source de données.

Discussions similaires

  1. javax.naming.NameNotFoundException: remote not bound
    Par iMacXus dans le forum Wildfly/JBoss
    Réponses: 12
    Dernier message: 06/10/2011, 23h51
  2. Mon Erreur javax.naming.NameNotFoundException:
    Par nafnaf625 dans le forum JOnAS
    Réponses: 3
    Dernier message: 16/08/2010, 11h40
  3. EJB3 remote javax.naming.NameNotFoundException
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 22/12/2007, 15h10
  4. [EJB Stateless] javax.naming.NameNotFoundException: ejb not bound
    Par slymira dans le forum Java EE
    Réponses: 18
    Dernier message: 04/07/2005, 15h30
  5. [EJB] [JBOSS][javax.naming.NameNotFoundException]
    Par hamed dans le forum Java EE
    Réponses: 5
    Dernier message: 18/12/2003, 18h00

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