blob: 45fe11e34d50f8efadaca9372e2add7753c8840e [file] [log] [blame]
/*
* Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package samples.ejb.subclassing.servlet;
import java.io.*;
import java.util.*;
import jakarta.servlet.*;
import javax.naming.*;
import jakarta.servlet.http.*;
import javax.rmi.PortableRemoteObject;
import jakarta.ejb.*;
import samples.ejb.subclassing.ejb.*;
import com.sun.jdbcra.spi.JdbcSetupAdmin;
public class SimpleBankServlet extends HttpServlet {
InitialContext initContext = null;
CustomerSavingsHome customerSavingsHome = null;
CustomerCheckingHome customerCheckingHome = null;
CustomerSavings customerSavings = null;
CustomerChecking customerChecking = null;
Hashtable env = new java.util.Hashtable(1);
String JNDIName = null;
Object objref = null;
public void init()
{
doLookup();
}
public void doGet (HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
/** handles the HTTP POST operation **/
public void doPost (HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
System.out.println("SimpleBankServlet is executing");
String SSN = request.getParameter("SSN");
String message = "";
String jsp = "";
String lastName = "";
String firstName = "";
String address1 = "";
String address2 = "";
String city = "";
String state = "";
String zipCode = "";
long currentSavingsBalance = 0;
long currentCheckingBalance = 0;
String action = request.getParameter("action");
if (action.equals("Create"))
{
message = "Add Customer";
jsp = "/SimpleBankAdd.jsp";
}
else if (action.equals("Add Customer"))
{
System.out.println("Add Customer button pressed");
SSN = request.getParameter("SSN");
lastName = request.getParameter("lastName");
firstName = request.getParameter("firstName");
address1 = request.getParameter("address1");
address2 = request.getParameter("address2");
city = request.getParameter("city");
state = request.getParameter("state");
zipCode = request.getParameter("zipCode");
try {
System.out.println("Creating the customer savings remote bean");
customerSavings = customerSavingsHome.create(SSN, lastName, firstName, address1, address2, city, state, zipCode);
} catch (Exception e) {
System.out.println("Could not create the customer savings remote bean : " + e.toString());
throw new ServletException(e.getMessage());
//return;
}
message = "Customer Added.";
jsp = "/SimpleBankMessage.jsp";
}
else if (action.equals("Edit"))
{
try {
System.out.println("Finding the customer savings remote bean");
customerSavings = customerSavingsHome.findByPrimaryKey(SSN);
} catch (Exception e) {
System.out.println("Could not find the customer remote bean : " + e.toString());
throw new ServletException(e.getMessage());
//return;
}
jsp = "/SimpleBankEdit.jsp";
}
else if (action.equals("Delete"))
{
try {
System.out.println("Finding the customer savings remote bean");
customerSavings = customerSavingsHome.findByPrimaryKey(SSN);
} catch (Exception e) {
System.out.println("Could not find the customer savings remote bean : " + e.toString());
throw new ServletException(e.getMessage());
//return;
}
message = "Delete Customer";
jsp = "/SimpleBankDelete.jsp";
}
else if (action.equals("Delete Customer"))
{
try {
customerSavingsHome.findByPrimaryKey(SSN).remove();
} catch (Exception e) {
System.out.println("Could not delete the customer savings bean : " + e.toString());
throw new ServletException(e.getMessage());
//return;
}
message = "Customer Deleted.";
jsp = "/SimpleBankMessage.jsp";
}
else if (action.equals("Update"))
{
try {
System.out.println("Finding the customersavings remote bean");
customerSavings = (CustomerSavings)customerSavingsHome.findByPrimaryKey(SSN);
} catch (Exception e) {
System.out.println("Could not find the customer savings remote bean : " + e.toString());
throw new ServletException(e.getMessage());
//return;
}
try {
System.out.println("Finding the customerchecking remote bean");
customerChecking = (CustomerChecking)customerCheckingHome.findByPrimaryKey(SSN);
} catch (Exception e) {
System.out.println("Could not find the customer checking remote bean : " + e.toString());
throw new ServletException(e.getMessage());
//return;
}
System.out.println("Transaction Complete");
String operationSavings = request.getParameter("operationSavings");
System.out.println("operationSavings = " + operationSavings);
String operationChecking = request.getParameter("operationChecking");
System.out.println("operationChecking = " + operationChecking);
String amountSavings = request.getParameter("amountSavings");
String amountChecking = request.getParameter("amountChecking");
if (operationSavings.equals("credit"))
{
customerSavings.doCredit(Long.parseLong(amountSavings), CustomerEJB.SAVINGS);
customerChecking.doCredit(Long.parseLong(amountSavings), CustomerEJB.SAVINGS);
} else {
customerSavings.doDebit(Long.parseLong(amountSavings), CustomerEJB.SAVINGS);
customerChecking.doDebit(Long.parseLong(amountSavings), CustomerEJB.SAVINGS);
}
if (operationChecking.equals("credit"))
{
customerChecking.doCredit(Long.parseLong(amountChecking), CustomerEJB.CHECKING);
customerSavings.doCredit(Long.parseLong(amountChecking), CustomerEJB.CHECKING);
} else {
customerChecking.doDebit(Long.parseLong(amountChecking), CustomerEJB.CHECKING);
customerSavings.doDebit(Long.parseLong(amountChecking), CustomerEJB.CHECKING);
}
jsp = "/SimpleBankEdit.jsp";
}
if (customerSavings != null)
{
lastName = customerSavings.getLastName();
firstName = customerSavings.getFirstName();
address1 = customerSavings.getAddress1();
address2 = customerSavings.getAddress2();
city = customerSavings.getCity();
state = customerSavings.getState();
zipCode = customerSavings.getZipCode();
SSN = customerSavings.getSSN();
currentSavingsBalance = customerSavings.getSavingsBalance();
currentCheckingBalance = customerSavings.getCheckingBalance();
}
System.out.println("storing the values in the request object");
request.setAttribute("lastName", lastName);
request.setAttribute("firstName", firstName);
request.setAttribute("address1", address1);
request.setAttribute("address2", address2);
request.setAttribute("city", city);
request.setAttribute("state", state);
request.setAttribute("zipCode", zipCode);
request.setAttribute("SSN", SSN);
request.setAttribute("currentSavingsBalance", String.valueOf(currentSavingsBalance));
request.setAttribute("currentCheckingBalance", String.valueOf(currentCheckingBalance));
request.setAttribute("message", message);
response.setContentType("text/html");
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(jsp);
dispatcher.include(request, response);
return;
}
public void doLookup()
{
try {
initContext = new javax.naming.InitialContext();
} catch (Exception e) {
System.out.println("Exception occured when creating InitialContext: " + e.toString());
return;
}
try {
JdbcSetupAdmin ja = (JdbcSetupAdmin) initContext.lookup("eis/jdbcAdmin");
if (ja.checkSetup() == false) {
throw new RuntimeException("JDBC Setup Wroing");
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
try {
System.out.println("Looking up customer savings bean home interface");
JNDIName = "java:comp/env/ejb/customerSavings";
System.out.println("Looking up: " + JNDIName);
objref = initContext.lookup(JNDIName);
customerSavingsHome = (CustomerSavingsHome)PortableRemoteObject.narrow(objref, CustomerSavingsHome.class);
} catch (Exception e) {
System.out.println("Customer savings bean home not found - Is the bean registered with JNDI? : " + e.toString());
return;
}
try {
System.out.println("Looking up customer checking bean home interface");
JNDIName = "java:comp/env/ejb/customerChecking";
System.out.println("Looking up: " + JNDIName);
objref = initContext.lookup(JNDIName);
customerCheckingHome = (CustomerCheckingHome)PortableRemoteObject.narrow(objref, CustomerCheckingHome.class);
} catch (Exception e) {
System.out.println("Customer checking bean home not found - Is the bean registered with JNDI? : " + e.toString());
return;
}
}
}