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 :

[JNDI] Premier EJB


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 219
    Par défaut [JNDI] Premier EJB
    Bonjour,

    J'essaie de lancer sur le serveur de JBoss mon premier EJB, celui du tutoriel de JBoss http://www.jboss.org/ejb3/docs.html

    Quand je lance mon premier Stateless qui a l'air super simple, celui du chap 4 http://www.jboss.org/file-access/def...ess_Beans.html.

    Après avoir lance mon JBoss, j'ai une erreur
    18:05:11,297 INFO [SessionSpecContainer] Stopping jboss.j2ee:jar=jboss-ejb3-tutorial-stateless.jar,name=CalculatorBean,service=EJB3
    18:05:11,313 INFO [EJBContainer] STOPPED EJB: manu.tutorial.stateless.bean.CalculatorBean ejbName: CalculatorBean
    18:05:11,313 ERROR [AbstractKernelController] Error installing to Start: name=jboss.j2ee:jar=jboss-ejb3-tutorial-stateless.jar,name=CalculatorBean,service=EJB3 state=Create
    java.lang.RuntimeException: Could not bind Reference Class Name: Proxy for: manu.tutorial.stateless.bean.CalculatorRemote
    Type: ProxyFactoryKey
    Content: ProxyFactory/jboss-ejb3-tutorial-stateless/CalculatorBean/CalculatorBean/remote
    Type: EJB Container Name
    Content: jboss.j2ee:jar=jboss-ejb3-tutorial-stateless.jar,name=CalculatorBean,service=EJB3
    Type: Proxy Factory is Local
    Content: false
    Type: Remote Business Interface
    Content: manu.tutorial.stateless.bean.CalculatorRemote
    Type: Remoting Host URL
    Content: socket://127.0.0.1:3873/
    into JNDI at "CalculatorBean/remote"
    at org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase.bind(JndiSessionRegistrarBase.java:915)
    at org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase.bind(JndiSessionRegistrarBase.java:895)
    at org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase.bind(JndiSessionRegistrarBase.java:884)
    at org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase.bindEjb(JndiSessionRegistrarBase.java:151)
    at org.jboss.ejb3.session.SessionContainer.lockedStart(SessionContainer.java:210)
    at org.jboss.ejb3.session.SessionSpecContainer.lockedStart(SessionSpecContainer.java:577)
    at org.jboss.ejb3.stateless.StatelessContainer.lockedStart(StatelessContainer.java:192)
    at org.jboss.ejb3.EJBContainer.start(EJBContainer.java:884)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
    at
    ................
    org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
    at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
    at org.jboss.Main.boot(Main.java:221)
    at org.jboss.Main$1.run(Main.java:556)
    at java.lang.Thread.run(Unknown Source)
    Caused by: javax.naming.NameAlreadyBoundException: remote
    at org.jnp.server.NamingServer.bind(NamingServer.java:209)
    at org.jnp.server.NamingServer.bind(NamingServer.java:167)
    at org.jnp.interfaces.NamingContext.bind(NamingContext.java:650)
    at org.jnp.interfaces.NamingContext.bind(NamingContext.java:611)
    at org.jboss.util.naming.Util.bind(Util.java:105)
    at org.jboss.util.naming.Util.bind(Util.java:91)
    at org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase.bind(JndiSessionRegistrarBase.java:910)
    ... 66 more
    18:05:11,516 INFO [JBossASKernel] Created KernelDeployment for: profileservice-secured.jar
    18:05:11,516 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=profileservice-secured.jar,name=SecureProfileService,service=EJB3
    18:05:11,516 INFO [JBossASKernel] with dependencies:
    18:05:11,516 INFO [JBossASKernel] and demands:
    18:05:11,516 INFO [JBossASKernel] jndi:SecureManagementView/remote-org.jboss.deployers.spi.management.ManagementView
    18:05:11,516 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
    18:05:11,516 INFO [JBossASKernel] and supplies:
    18:05:11,516 INFO [JBossASKernel] Class:org.jboss.profileservice.spi.ProfileService
    18:05:11,516 INFO [JBossASKernel] jndi:SecureProfileService/remote
    18:05:11,516 INFO [JBossASKernel] jndi:SecureProfileService/remote-org.jboss.profileservice.spi.ProfileService
    Un truc comme ça et mon code
    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 manu.tutorial.stateless.bean;
     
    import javax.ejb.Stateless;
     
    @Stateless
    public class CalculatorBean implements CalculatorRemote, CalculatorLocal
    {
       public int add(int x, int y)
       {
          return x + y;
       }
     
       public int subtract(int x, int y)
       {
          return x - y;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import javax.ejb.Local;
     
    @Local
    public interface CalculatorLocal extends Calculator
    {
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import javax.ejb.Remote;
     
    @Remote
    public interface CalculatorRemote extends Calculator {
     
    }
    Et le client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import javax.naming.InitialContext;
     
    import manu.tutorial.stateless.bean.Calculator;
     
    public class Client {
        public static void main(String[] args) throws Exception {
            InitialContext ctx = new InitialContext();
            Calculator calculator = (Calculator) ctx
                    .lookup("CalculatorBean/remote");
     
            System.out.println("1 + 1 = " + calculator.add(1, 1));
            System.out.println("1 - 1 = " + calculator.subtract(1, 1));
        }
    }
    Je sais pas vraiment comment interpreter le JNDI enk dans le tutoriel, ils n'en parlent pas.

    Est-ce qu'il y a quelqu'un qui peut m'aider.

    Merci d'avance

  2. #2
    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
    Comment est définie l'interface Calculator ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 219
    Par défaut
    ha oui c est vrai, j oubliais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    public interface Calculator
    {
       int add(int x, int y);
     
       int subtract(int x, int y);
    }

  4. #4
    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
    Essaye de mettre ces 2 méthodes dans chacune des interfaces et retire l'extend.
    (je ne sais pas si ça vient de là, mais ça me paraît curieux)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre émérite Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Par défaut
    Le debut de ta stack c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    18:05:11,297 INFO [SessionSpecContainer] Stopping jboss.j2ee:jar=jboss-ejb3-tutorial-stateless.jar,name=CalculatorBean,service=EJB3
    18:05:11,313 INFO [EJBContainer] STOPPED EJB: manu.tutorial.stateless.bean.CalculatorBean ejbName: CalculatorBean
    Tu peux montrer ce qu'il y a avant?

Discussions similaires

  1. [EJB Session] Mon premier EJB
    Par lien-ju dans le forum Java EE
    Réponses: 26
    Dernier message: 02/07/2009, 11h08
  2. [EJB] Accès JNDI à un EJB
    Par olivier57b dans le forum Java EE
    Réponses: 3
    Dernier message: 28/05/2009, 12h13
  3. [EJB2] Problème de connection avec mon premier EJB..
    Par gelinp dans le forum Java EE
    Réponses: 7
    Dernier message: 02/05/2007, 17h06
  4. Tester son premier EJB
    Par jeoff dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 22/06/2006, 10h55
  5. Réponses: 4
    Dernier message: 20/07/2004, 21h53

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