Hi Francesco,
Couple quick things, could you post your openejb.log file? That'd
help us figure out what might have happened to your bean, etc. Or
what name should be used to look it up.
Thanks,
David
On Nov 17, 2006, at 1:12 PM, Francesco Sessa wrote:
Hi all,
I'm an italian university student.
Sorry for my english.
I have installed openejb 1.0 on my pc, and i copy the war loader in
the webapps directory of my tomcat 5.5 server.
I have modified the xml file in the war (openejb.home).
I have deployed myHelloEjb.jar (openejb deploy -c -f -a C:/
myHelloEjb.jar) (ID= Hello Container=1 (the only one).
I create a jsp, openejb.jsp, in webapps/examples, and i create the
WEB-INF/web.xml. I post the code of the openejb.jsp, and
the code of web.xml:
openejb.jsp:
<%@ page import="org.acme.HelloObject,
org.acme.HelloHome,
javax.naming.InitialContext,
javax.naming.Context,
java.util.*"%>
<html>
<head>
<title>OpenEJB -- EJB for Tomcat</title>
</head>
<body>
Stateless Session bean - HelloBean - says:
<%
Properties p = new Properties();
p.put("java.naming.factory.initial",
"org.openejb.client.LocalInitialContextFactory");
Context initCtx = new InitialContext();
Object object = initCtx.lookup("java:comp/env/ejb/hello");
//Object object = initCtx.lookup("Hello");
HelloHome helloHome = (HelloHome)
javax.rmi.PortableRemoteObject.narrow(object, HelloHome.class);
HelloObject bean = helloHome.create();
%>
<%= bean.sayHello() %>
</body>
</html>
web.xml:
<ejb-ref>
<description> EJB Reference to the bean deployed to OpenEJB </
description>
<ejb-ref-name>ejb/hello</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.acme.HelloHome</home>
<remote>org.acme.Hello</remote>
</ejb-ref>
I insert in %CATALINA_HOME%/conf/server.xml the code:
<Context path="/examples">
<Ejb name="ejb/hello" type="Session" home="org.acme.HelloHome"
remote="org.acme.Hello"/>
<ResourceParams name="ejb/hello">
<parameter>
<name>factory</name>
<value>org.openejb.client.TomcatEjbFactory</value>
</parameter>
<parameter>
<name>openejb.naming.factory.initial</name>
<value>org.openejb.client.LocalInitialContextFactory</value>
</parameter>
<parameter>
<name>openejb.ejb-link</name>
<value>Hello</value>
</parameter>
</ResourceParams>
</Context>
in the "Host" xml-node.
When i launch tomcat, and i go at http://localhost:8080/examples/
openejb.jsp i read the error report:
HTTP Status 500 -
----------------------------------------------------------------------
--
*type* Exception report
*message*
*description* _The server encountered an internal error () that
prevented it from fulfilling this request._
*exception*
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException
(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:395)
org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
*root cause*
java.lang.NullPointerException
org.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:152)
javax.naming.InitialContext.lookup(InitialContext.java:351)
org.apache.jsp.openejb_jsp._jspService(openejb_jsp.java:62)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
*note* _The full stack trace of the root cause is available in the
Apache Tomcat/5.5.20 logs._
----------------------------------------------------------------------
--
Apache Tomcat/5.5.20
If i modify openejb.jsp code in:
Properties p = new Properties();
p.put("java.naming.factory.initial",
"org.openejb.client.LocalInitialContextFactory");
Context initCtx = new InitialContext(p);
//Object object = initCtx.lookup("java:comp/env/ejb/hello");
Object object = initCtx.lookup("Hello");
HelloHome helloHome = (HelloHome)
javax.rmi.PortableRemoteObject.narrow(object, HelloHome.class);
HelloObject bean = helloHome.create();
I want to hide in the jsp the openejb factory.
Can you help me please?
I'm in a hurry, because this examples it's important for my
graduation thesis.
Thank you