@helloHome.java
//1. home interface -->CM(create)
// 1.ejb home 인터페이스를 상속받는다.
import javax.ejb.*;
import java.rmi.RemoteException;
public interface HelloHome extends EJBHome{
//stateless
public Hello create() throws RemoteException, CreateException;
}
---------------------------------------------------------------------
@Hello.java
//2. remote interface -->Bussiness Method 를 선언
import javax.ejb.*;
import java.rmi.RemoteException;
public interface Hello extends EJBObject{
public String sayHello(String name) throws RemoteException;
public void setAge(int age) throws RemoteException;
public int getAge() throws RemoteException;
public String getName() throws RemoteException;
}
-----------------------------------------------------------------------
@HelloEJB.java
// 3. bean class
import javax.ejb.*;
public class HelloEJB implements SessionBean{
private String name;
private int age;
public HelloEJB(){
System.out.println("HelloEJB()");
}
//1. SessionBean interface member overriding
public void ejbActivate(){
System.out.println("\t ejbActivate()");
}
public void setSessionContext(SessionContext ctx){
System.out.println("setSessionContext()");
}//한번만 호출될수 있음..
public void ejbPassivate(){
System.out.println("\t ejbPassivate()");
}
public void ejbRemove(){
System.out.println("\t ejbRemove()");
}
//2. home create --> ejbCreate
public void ejbCreate(){
System.out.println("\t ejbCreate()");
}
//3. remote BM overriding
public String sayHello(String name){
this.name=name;
return name+"님 어서오세요...";
}
public void setAge(int age){
this.age=age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}
----------------------------------------------------------------------
@HelloClient.java
import javax.naming.*;
import javax.rmi.*;
public class HelloClient{
public static void main(String[] args){
try{
Context ctx=new InitialContext(); //JNDI 정보를 가져온다.
Object obj=ctx.lookup("ejb/Hello");
HelloHome home=(HelloHome)PortableRemoteObject.narrow(obj, HelloHome.class);
Hello remote=home.create();
//String ss=remote.sayHello("홍길동");
//System.out.println("message :"+ss);
//remote.setAge(10);
System.out.println(remote.getName()+" "+remote.getAge());
}catch(Exception e){
e.printStackTrace();
}
}
}
[출처] [본문스크랩] EJB 강좌-1|작성자 데카르트