package com.williams1000.trading.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
import javax.ejb.FinderException;
import javax.ejb.RemoveException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.williams1000.trading.ejb.TradeEntry;
import com.williams1000.trading.ejb.TradeEntryHome;
/**
* @web.servlet
* name="Trading"
*
* @web.servlet-mapping
* url-pattern="/trade"
*
* @web.ejb-ref
* name="ejb/trading/TradeEntry"
* type="Session"
* home="com.williams1000.trading.ejb.TradeEntryHome"
* remote="com.williams1000.trading.ejb.TradeEntry"
*
* @jboss.ejb-ref-jndi
* ref-name="ejb/trading/TradeEntry"
* jndi-name="ejb/trading/TradeEntry"
*/
public class TradingServlet
extends HttpServlet
{
protected void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
try
{
int count = getCount();
response.setContentType( "text/html" );
PrintWriter out = response.getWriter();
out.println( "<html>" );
out.println( "<body>" );
out.println( "<h1>The count is " + count + "</h1>" );
out.println( "</body>" );
out.println( "</html>" );
out.close();
}
catch ( RemoteException e )
{
throw new ServletException( e );
}
catch ( CreateException e )
{
throw new ServletException( e );
}
catch ( NamingException e )
{
throw new ServletException( e );
}
catch ( FinderException e )
{
throw new ServletException( e );
}
catch ( RemoveException e )
{
throw new ServletException( e );
}
}
private int getCount()
throws RemoteException, CreateException, NamingException, FinderException, RemoveException
{
TradeEntryHome home = (TradeEntryHome) fetchHome( "java:comp/env/ejb/trading/TradeEntry", TradeEntryHome.class );
TradeEntry tradeEntry = home.create();
tradeEntry.createCoupon( "132456788" );
tradeEntry.createBond( "123456789" );
tradeEntry.removeAllBonds();
return tradeEntry.getBookmarkCount();
}
private EJBHome fetchHome( String name, Class homeClass )
throws NamingException
{
System.out.println( "finding: " + name );
EJBHome home;
Object lookup = new InitialContext().lookup( name );
home = (EJBHome) PortableRemoteObject.narrow( lookup, homeClass );
System.out.println( "well I made it here " + name );
return home;
}
protected void doPost( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
doGet( request, response );
}
}