Retrieving a home interface and creating a bean

Here is an example on how to retrieve the home interface of a bean named Region from a Servlet and then create a new instance of this bean:

import java.io.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import javax.servlet.*;
import javax.servlet.http.*;

public class RegionServlet extends HttpServlet
{
  /**
   * Called on a GET request for this servlet
   *
   * @param request a <code>HttpServletRequest</code> value
   * @param response a <code>HttpServletResponse</code> value
   * @exception IOException if an error occurs
   * @exception ServletException if an error occurs
   */
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    private PrintWriter out;

    response.setContentType("text/html");
    try
    {
      out = reponse.getWriter();
    }
    catch (IOException ioe)
    {
      ioe.printStackTrace();
    }

    out.println("<!doctype html public "-//w3c//dtd html 4.0 transitional//en">");
    out.println("<html>");
    out.println("<body>");
    out.println("RegionServlet - Looking for the initial context<br>")
 
    Context initialContext = null;
    try
    {
      initialContext = new InitialContext();
    } 
    catch (Exception e) 
    {
      out.println("RegionServlet - Cannot get initial context for JNDI: " +e+"<br>");
      return ;
    }


    out.println("RegionServlet - Looking up bean's home interface<br>")

    RegionHome home;
    try 
    {
      home = (RegionHome)PortableRemoteObject.narrow(
               initialContext.lookup("RegionHome"),RegionHome.class);
    } 
    catch (Exception e)
    {
      out.println("RegionServlet - Cannot lookup home interface: " +e+"<br>");
      return ;
    }


    out.println("RegionServlet - Creating a new bean instance<br>")

    Region bean;
    try 
    {
      bean = home.create();
    } 
    catch (Exception e)
    {
      sp.printHTML("RegionServlet - Error while creating new bean instance: " +e+"<br>");
      return ;
    }

    ... here you can call method any method defined in the bean 
        remote interface (example: bean.doSomething(...);) ...

    out.println("</body>\n");
    out.println("</html>\n");	
  }

}