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.