Hi Jean-Louis,
My OpenEJB version is 3.0.
The examples that I got are all with EJB3. Do you have the example for
EJB2.x? If yes, please send it to me or email me the URL link. Much thanks.
SK
Jean-Louis MONTEIRO wrote:
>
> Hi,
>
> Actually, i don't have a big experience with EJB 2.x.
> Which OpenEJB version are you using?
>
> Did you have a look to examples?
> As far as i know, there are EJB 2.x examples.
>
> Jean-Louis
>
>
> SK Leung wrote:
>>
>> I have created two session beans.
>> One is ejbuser.HelloEJB.java
>> package ejbuser;
>>
>> import java.rmi.RemoteException;
>> import javax.ejb.SessionBean;
>> import javax.ejb.SessionContext;
>>
>> public class HelloEJB implements SessionBean {
>> public HelloEJB() {}
>> public void ejbCreate() {}
>> public void ejbRemove() {}
>> public void ejbActivate() {}
>> public void ejbPassivate() {}
>> public void setSessionContext(SessionContext sc) {}
>>
>> public String helloWorld() throws RemoteException {
>> String v = System.getProperty("java.vm.name");
>> return "Hello client, your javavm Name is " + v + ".";
>> }
>>
>> }
>>
>> The other one is ejbuser.OrderSBEJB.java
>> package ejbuser;
>>
>> import java.rmi.RemoteException;
>> import javax.rmi.PortableRemoteObject;
>> import javax.ejb.SessionBean;
>> import javax.ejb.SessionContext;
>> import javax.naming.InitialContext;
>> import javax.servlet.*;
>> import javax.servlet.http.*;
>> import java.util.Collection;
>>
>> public class OrderSBEJB implements SessionBean {
>> public OrderSBEJB() {}
>> public void ejbCreate() {}
>> public void ejbRemove() {}
>> public void ejbActivate() {}
>> public void ejbPassivate() {}
>> public void setSessionContext(SessionContext sc) {}
>>
>> public String showGreeting() throws RemoteException {
>> return "This is the greeting message.";
>> }
>>
>> public String helloWorld() throws RemoteException {
>> String sResult = null;
>> try {
>> InitialContext icHello = new InitialContext();
>> Object objHello = icHello.lookup("Hello");
>> HelloHome helloHome =
>> (HelloHome)PortableRemoteObject.narrow(objHello,
>> HelloHome.class);
>> Hello hello = helloHome.create();
>> sResult = hello.helloWorld();
>> } catch(Exception e) {
>> e.printStackTrace();
>> } finally {
>> }
>> return sResult;
>> }
>>
>> }
>>
>> I can call these two session beans from the servlet as below.
>> InitialContext icHello = new InitialContext();
>> Object objHello = icHello.lookup("java:comp/env/ejb/ejbuser/HelloHome");
>> HelloHome helloHome = (HelloHome)PortableRemoteObject.narrow(objHello,
>> HelloHome.class);
>> Hello hello = helloHome.create();
>> System.out.println(hello.helloWorld());
>> InitialContext icOrderSB = new InitialContext();
>> Object objOrderSB =
>> icOrderSB.lookup("java:comp/env/ejb/ejbuser/OrderSBHome");
>> OrderSBHome orderSBHome =
>> (OrderSBHome)PortableRemoteObject.narrow(objOrderSB, OrderSBHome.class);
>> OrderSB orderSB = orderSBHome.create();
>> System.out.println(orderSB.showGreeting());
>>
>> But when I call
>> System.out.println(orderSB.helloWorld());
>> There is the error message.
>> 1) Name "Hello" is not bound in this context.
>>
>> The ejb-jar.xml file is:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" version="2.1"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>> http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
>> <enterprise-beans>
>> <session>
>> <display-name>OrderSB</display-name>
>> <ejb-name>OrderSB</ejb-name>
>> <home>ejbuser.OrderSBHome</home>
>> <remote>ejbuser.OrderSB</remote>
>> <ejb-class>ejbuser.OrderSBEJB</ejb-class>
>> <session-type>Stateless</session-type>
>> <transaction-type>Container</transaction-type>
>> </session>
>> <session>
>> <display-name>Hello</display-name>
>> <ejb-name>Hello</ejb-name>
>> <home>ejbuser.HelloHome</home>
>> <remote>ejbuser.Hello</remote>
>> <ejb-class>ejbuser.HelloEJB</ejb-class>
>> <session-type>Stateless</session-type>
>> </session>
>> </enterprise-beans>
>> </ejb-jar>
>>
>> There is something wrong when calling session bean HelloEJB from method
>> helloWorld() in OrderSBEJB. What is the correct way in looking up
>> HelloEJB from inside OrderSBEJB? Please advise, thanks.
>> SK
>>
>
>
--
View this message in context:
http://www.nabble.com/How-to-call-session-bean-from-another-session-bean-tp25715830p25750609.html
Sent from the OpenEJB User mailing list archive at Nabble.com.