@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|작성자 데카르트