HI .i have tried to call a ejb remote deployed on tomee from a tomcat7 plain.
>From the servlet deployed into tomcat plain i have:

@WebServlet(name = "ProvatestejbRemoto", urlPatterns = {"/prova"})
public class ProvatestejbRemoto extends HttpServlet {

    private TestBeanRemote myBean = null;

   
  
    @PostConstruct
    public void inizializzaEjb(){
  try {
            Properties p = new Properties();
            p.put("java.naming.factory.initial",
"org.apache.openejb.client.RemoteInitialContextFactory");
            p.put("java.naming.provider.url",
"http://localhost:8080/tomee/ejb";);
// user and pass optional
//p.put("java.naming.security.principal", "myuser");// i not use the
security.
//p.put("java.naming.security.credentials", "mypass");// i not use the
security.

            InitialContext ctx = new InitialContext(p);

            myBean = (TestBeanRemote)
ctx.lookup("java:global/ejbsutomee/TestBean");
//theproject    name of the war deployed on tomee  is ejbsutomee.war

        } catch (Exception e) {
          //  e.printStackTrace(out);
        }   
    }
    
    
    protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

       

        try {
            /* TODO output your page here. You may use following sample
code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ProvatestejbRemoto</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("
Servlet ProvatestejbRemoto at " + request.getContextPath() + "
");
            out.println("the ejb remote says: " + myBean.hello());

            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}

-----------------
i have put the interface into my client project and i have put into the
calsspath the openejbclient.jar
but when i run the project client i get eroor :

HTTP Status 500 - Error instantiating servlet class srv.ProvatestejbRemoto

type Exception report

message Error instantiating servlet class srv.ProvatestejbRemoto

description The server encountered an internal error that prevented it from
fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class
srv.ProvatestejbRemoto

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)

org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        java.lang.Thread.run(Thread.java:724)

root cause

java.lang.NoClassDefFoundError: javax/ejb/EJBHome
        java.lang.Class.forName0(Native Method)
        java.lang.Class.forName(Class.java:270)
        
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:63)
        javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671)
        javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
        javax.naming.InitialContext.init(InitialContext.java:242)
        javax.naming.InitialContext.<init>(InitialContext.java:216)
        srv.ProvatestejbRemoto.inizializzaEjb(ProvatestejbRemoto.java:41)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.lang.reflect.Method.invoke(Method.java:606)

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)

org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        java.lang.Thread.run(Thread.java:724)

root cause

java.lang.ClassNotFoundException: javax.ejb.EJBHome

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
        java.lang.Class.forName0(Native Method)
        java.lang.Class.forName(Class.java:270)
        
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:63)
        javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671)
        javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
        javax.naming.InitialContext.init(InitialContext.java:242)
        javax.naming.InitialContext.<init>(InitialContext.java:216)
        srv.ProvatestejbRemoto.inizializzaEjb(ProvatestejbRemoto.java:41)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.lang.reflect.Method.invoke(Method.java:606)

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)

org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        java.lang.Thread.run(Thread.java:724)

note The full stack trace of the root cause is available in the Apache
Tomcat/7.0.41 logs.
Apache Tomcat/7.0.41







--
View this message in context: 
http://openejb.979440.n4.nabble.com/call-ejb-remote-not-work-help-me-tp4666948.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to