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