8 Replies Latest reply on Jun 11, 2012 10:06 AM by Gustavo penayo

    java.lang.ClassNotFoundException: com.HelloWorldBeanRemote

    Gustavo penayo Newbie

      Hola!

      Estoy tratando de hacer un HelloWorld con ejb 3. version de jboss 7.1

      tengo el ejb de la siguiente manera:

      el nombre del proyecto es HolaMundoEjb

      //---------------------------------------------------------

      package com;

      import javax.ejb.Remote;

       

      @Remote

      public interface HelloWorldBeanRemote {

          public String getHelloWorld();

       

      }

      //-------------------------------------------------------

      package com;

      import javax.ejb.LocalBean;

      import javax.ejb.Stateless;

       

      @Stateless

      @LocalBean

      public class HelloWorldBean implements HelloWorldBeanRemote {

       

            public String getHelloWorld(){

                return "Hola EJB 3.0";

          }

      }

       

      Cuando implemento el ejb, en la consola del servidor me da la siguiente información:

      10:50:07,673 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean named HelloWorldBean in deployment unit deployment "HolaMundoEjb.jar" are as follows:

       

                java:global/HolaMundoEjb/HelloWorldBean!com.HelloWorldBean

                java:app/HolaMundoEjb/HelloWorldBean!com.HelloWorldBean

                java:module/HelloWorldBean!com.HelloWorldBean

                java:global/HolaMundoEjb/HelloWorldBean!com.HelloWorldBeanRemote

                java:app/HolaMundoEjb/HelloWorldBean!com.HelloWorldBeanRemote

                java:module/HelloWorldBean!com.HelloWorldBeanRemote

                java:jboss/exported/HolaMundoEjb/HelloWorldBean!com.HelloWorldBeanRemote

       

      En mi cliente tengo un servlet que tiene el siguiente codigo para acceder al ejb:

      37|     HelloWorldBeanRemote hello = null ;

      43|     try{

      44|             Context initial = new InitialContext();

      45|             hello = (HelloWorldBeanRemote)initial.lookup("ejb:HolaMundoEjb/HelloWorldBean!com.HelloWorldBeanRemote");

      47|     }catch(Exception NamingException){

      48|             NamingException.printStackTrace();

      49|     }

      53|     String var = hello.getHelloWorld() ;

       

      Cuando ejecuto el servlet obtengo el siguiente error :

      javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción

       

      causa raíz

      java.lang.NoClassDefFoundError: com/HelloWorldBeanRemote
           Saludo.HelloWorld.doGet(HelloWorld.java:45)
           javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
           javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

       

      causa raíz

      java.lang.ClassNotFoundException: com.HelloWorldBeanRemote from [Module "deployment.WebPrueba.war:main" from Service Module Loader]
           org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
           org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
           org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
           org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
           org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
           Saludo.HelloWorld.doGet(HelloWorld.java:45)
           javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
           javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

       

      No se si me estoy equivocando con el jndi en el lookup. No se cual debo tomar.