Example 1

Below is a basic example of a Servlet, who uses the DynamicDelegateFactory to dynamically create a business delegate for the HelloBean. Note that the HelloBean implements the Business Interface design pattern by implementing the Hello interface.

// A servlet that uses the Dynamic Delegate to call the below bean.
public class MyServlet extends HttpServlet {

	public MyServlet() { super(); }

	public void doGet(HttpServletRequest req,HttpServletResponse res)
	throws ServletException, IOException {
	
		DynamicDelegateFactory delegateFactory = new DynamicDelegateFactory();
		Hello delegate = (Hello) delegateFactory.createLocalDelegate(
						"java:comp/env/ejb/HelloLocalHome",
						HelloLocalHome.class,
						Hello.class);
		
		res.setContentType("text/html");
		PrintWriter pw = res.getWriter();
		pw.println(delegate.sayHello());
		pw.close();
	}
}

// The Business interface
public interface Hello {

	String sayHello();
}

// The local client interface, implements the business interface (Hello)
public HelloLocal extends EJBLocalObject, Hello {

}

// The local home
public HelloLocalHome implements EJBLocalHome {

	public HelloLocal create() throws CreateException;
}

// The bean class, implements the business interface (Hello)
public HelloBean implements SessionBean, Hello {

	public String sayHello() { return "Hello"; }

	public void ejbCreate() { }
	public void ejbActivate() { }
	public void ejbPassivate() { }
	public void ejbRemove() { }
	public void setSessionContext(SessionContext ctx) { }
}
		
		

You can also browse the source code of the DynamicDelegateFactoryTest test case.