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 :

Localiser un EJB Stateless via un jndi/lookup


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre habitué Avatar de JacNar6
    Homme Profil pro
    Développeur Java/Java EE/Android
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java/Java EE/Android

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 134
    Points
    134
    Par défaut Localiser un EJB Stateless via un jndi/lookup
    Bonsoir,

    J'essai (en vain) de faire un lookup vers un composant EJB, mais tout ce que j'essaie comme nommage pour localiser mon EJB ne donne rien;

    J'utilise la version 7 de Java EE avec le WildFly 8.2. J'utilise un framework de sécurité (Apache Shiro) qui ne supporte pas les injections de dépendance (@EJB).

    mon appli est une archive war et je n'implémente aucune interface (dans la mesure ou les interfaces Local sont facultatif en Java EE 7).

    Quelqu'un peux t-il m'aider avec un exemple qui marche ?
    Si vous avez de l'Amour, vous ne ferez du mal à personne et personne ne vous fera du mal. W M Branham

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Les EJB sont bien déployé? Normalement, wildfly te met dans les logs de démarrages tous les ejb qu'il déploie (et je pense même aussi leur adresse jndi)

  3. #3
    Membre habitué Avatar de JacNar6
    Homme Profil pro
    Développeur Java/Java EE/Android
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java/Java EE/Android

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Les EJB sont bien déployé? Normalement, wildfly te met dans les logs de démarrages tous les ejb qu'il déploie (et je pense même aussi leur adresse jndi)
    Bonjour, et pardon pour ma réaction tardive!

    Tous mes EJB se déploient normalement! Il suffit que mettre en commentaire le lieu de mon lookup pour que mon appli fonctionne normalement

    Voici l'entête de mon EJB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Stateless(name = "PosteTravailFacade")
    public class PosteTravailFacade extends AbstractFacade<PosteTravail>{...}
    Voici ce que je fais (bien entendu ceci n'est que l'un des exemples que j'ai essayé), à peu prêt comme ce que je fais sous Java EE 5 et qui marche bien (avec l'ajour d'un /local ou d'un /remote:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    posteTravailFacade = (PosteTravailFacade)new InitialContext().lookup("mails_web/PosteTravailFacade");
    et voici le listing de l'erreur
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    2015-11-05 19:34:51,060 SEVERE [com.jc.mails.backingbean.security.MyRealm] (MSC service thread 1-7) null: javax.naming.NameNotFoundException: mails_web/PosteTravailFacade -- service jboss.naming.context.java.mails_web.PosteTravailFacade
    	at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104)
    	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:202)
    	at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:233)
    	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:188)
    	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184)
    	at javax.naming.InitialContext.lookup(InitialContext.java:411) [rt.jar:1.7.0_51]
    	at javax.naming.InitialContext.lookup(InitialContext.java:411) [rt.jar:1.7.0_51]
    	at com.jc.mails.backingbean.security.MyRealm.<init>(MyRealm.java:34) [classes:]
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_51]
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_51]
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_51]
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_51]
    	at java.lang.Class.newInstance(Class.java:374) [rt.jar:1.7.0_51]
    	at org.apache.shiro.util.ClassUtils.newInstance(ClassUtils.java:177) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.util.ClassUtils.newInstance(ClassUtils.java:164) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.ReflectionBuilder.createNewInstance(ReflectionBuilder.java:144) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:119) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(IniSecurityManagerFactory.java:161) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:124) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:102) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:88) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:46) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurityManager(IniWebEnvironment.java:203) [shiro-web-1.2.4.jar:1.2.4]
    	at org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebEnvironment.java:99) [shiro-web-1.2.4.jar:1.2.4]
    	at org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92) [shiro-web-1.2.4.jar:1.2.4]
    	at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40) [shiro-core-1.2.4.jar:1.2.4]
    	at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221) [shiro-web-1.2.4.jar:1.2.4]
    	at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133) [shiro-web-1.2.4.jar:1.2.4]
    	at org.apache.shiro.web.env.EnvironmentLoaderListener.contextInitialized(EnvironmentLoaderListener.java:58) [shiro-web-1.2.4.jar:1.2.4]
    	at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:173) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    	at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:193) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:87)
    	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:72)
    	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
    	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
    Si vous avez de l'Amour, vous ne ferez du mal à personne et personne ne vous fera du mal. W M Branham

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si je ne dit pas de bêtises, les ejbs se localisent dans java:comp/ directement par leur nom sans prefixe d'application et avec les suffixes local ou remote. Le plus simple c'est d'aller dans la console administration de jboss et regarder les détails de l'ejb.

  5. #5
    Membre habitué Avatar de JacNar6
    Homme Profil pro
    Développeur Java/Java EE/Android
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java/Java EE/Android

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Le plus simple c'est d'aller dans la console administration de jboss et regarder les détails de l'ejb.
    En attendant de regarder la localisation avec java:comp/, je ne vois pas plus de détail sur l'EJB que ce qui apparaît sur l'image ci-dessous

    Nom : Capture.PNG
Affichages : 657
Taille : 41,6 Ko

    J'ignore si l'interface de Wildfly offre d'autres possibilités pour visualiser les détais
    Si vous avez de l'Amour, vous ne ferez du mal à personne et personne ne vous fera du mal. W M Branham

  6. #6
    Membre habitué Avatar de JacNar6
    Homme Profil pro
    Développeur Java/Java EE/Android
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java/Java EE/Android

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 134
    Points
    134
    Par défaut
    Après avoir parcouru se lien http://stackoverflow.com/questions/2...ing-on-jboss-7

    j'ai du faire comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    posteTravailFacade = (IPosteTravailLocal)new InitialContext().lookup("ejb:/mails_web/PosteTravailFacade!com.jc.mails.session.IPosteTravailLocal");
    Et les choses marchent bien (mais ceci impose l'utilisation d'une interface local ou remote)
    Si vous avez de l'Amour, vous ne ferez du mal à personne et personne ne vous fera du mal. W M Branham

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

Discussions similaires

  1. n'accede pas à mon ejb stateless
    Par duke666 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 05/05/2008, 14h26
  2. Réponses: 5
    Dernier message: 24/04/2008, 07h54
  3. [EJB3] [JBoss] javax.ejb.Stateless introuvable
    Par pmartin8 dans le forum Java EE
    Réponses: 2
    Dernier message: 16/04/2007, 15h09
  4. [EJB3] Retour null sur tous mes EJB Stateless.
    Par vinzo dans le forum Java EE
    Réponses: 3
    Dernier message: 06/02/2007, 16h28
  5. [jndi]lookup -> java.io.File
    Par Invité dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 19/04/2006, 14h07

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