Hi did you add missing class in tomcat? javaee-api and openejb-client maybe? Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau
2014/1/3 mauro2java2011 <[email protected]>: > 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.
