import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

public class CallHelloWorldBean {
	public static void main(String[] args) {
		try {
			Context initial = new InitialContext();
			Object objRef = initial.lookup("helloBean");

			SayHelloHome home =
				(SayHelloHome) PortableRemoteObject.narrow(
					objRef,
					SayHelloHome.class);
			SayHello sh = home.create();

			System.out.println(sh.sayHello("Mario"));

		} catch (NamingException ne) {
			ne.printStackTrace();
		} catch (RemoteException re) {
			re.printStackTrace();
		} catch (CreateException ce) {
			ce.printStackTrace();
		}
	}
}