iCashServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.rmi.RemoteException;
import creditcard.ejb.*;
import creditcard.ejb.ICreditCardHome;
import creditcard.ejb.ICreditCardRemote;
import creditcard.ejb.CreditCardImpl;
public class
iCashServlet extends HttpServlet
{
public void doPost(HttpServletRequest
req, HttpServletResponse resp) throws ServletException,
IOException{
resp.setContentType("text/html");
PrintWriter out = new PrintWriter(resp.getOutputStream());
String CardNumber = req.getParameter("cardNumber");
System.out.println(CardNumber);
double PurchaseAmt = 38.26;
String JNDI_NAME = "cybercash";
javax.naming.Context initContext;
java.util.Hashtable env = new
java.util.Hashtable(1);
ICreditCardHome Home;
ICreditCardRemote Remote;
env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.kivasoft.eb.jndi.GDSInitContextFactory");
try {
initContext = new
javax.naming.InitialContext(env);
}
catch (Exception
e) {
throw new
RemoteException("JNDI_INIT_CONTEXT_FAILED");
}
if (initContext == null)
{
throw new
RemoteException("JNDI_INIT_CONTEXT_FAILED");
}
try {
Home = (ICreditCardHome) initContext.lookup(JNDI_NAME);
}
catch(javax.naming.NameNotFoundException
e) {
throw new
RemoteException("JNDI_LOOKUP_FAILED");
}
catch(javax.naming.NamingException
e) {
throw new
RemoteException("JNDI_LOOKUP_FAILED");
}
catch (java.lang.ClassCastException
e) {
throw new
RemoteException("JNDI_LOOKUP_FAILED");
}
try {
Remote = Home.create();
}
catch(javax.ejb.CreateException
e) {
throw new
RemoteException("EJB_BEAN_CREATE_FAILED");
}
catch(java.rmi.RemoteException
e) {
throw new
RemoteException("EJB_BEAN_CREATE_FAILED");
}
out.println("<HTML>");
out.println("<HEAD><TITLE>iCashServlet Output</TITLE></HEAD>");
out.println("<BODY>");
try{
boolean validation
= Remote.isValid(CardNumber);
if (!validation){
out.println("<p> This card is
not valid, your request will not be processed </p>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
return;
}
}
catch(java.rmi.RemoteException
e) {
throw new
RemoteException("CARDNUMBER_IS_NOT_VALID");
}
try{
boolean expiration
= Remote.isExpired(CardNumber);
if (expiration){
out.println("<p> This card is
expired, your request will not be processed </p>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
return;
}
}
catch(java.rmi.RemoteException
e) {
throw new
RemoteException("CARD_IS_EXPIRED");
}
try {
boolean creditLimit
= Remote.sufficientFunds(CardNumber, PurchaseAmt);
if (!creditLimit){
out.println("<p> The card has
reported insufficient funds, your request will not be processed </p>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
return;
}
}
catch(java.rmi.RemoteException
e) {
throw new
RemoteException("CREDIT_LIMIT_EXCEEDED");
}
try{
Remote.debit(CardNumber, PurchaseAmt);
}
catch(java.rmi.RemoteException
e) {
out.println("<p> The transaction has been
rolled back !!! </p>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
return;
}
out.println("<h3> The transaction has been processed
and flagged for immediate shipment </h3>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
}
public void doGet(HttpServletRequest
req, HttpServletResponse resp) throws ServletException,
IOException{
doPost(req,resp);
}
} |