/*
* BankServlet.java
*
* Created on February 16, 2007, 12:09 PM
*/
package bank.servlet;
import com.sun.org.apache.xml.internal.security.utils.Base64;
import java.io.*;
import java.net.*;
import java.util.Map;
import javax.annotation.security.DeclareRoles;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.xml.ws.soap.SOAPFaultException;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceRef;
/**
*
* @author sony
* @version
*/
@DeclareRoles(value = {"bankcustomer", "bankmanager"})
public class BankServlet extends HttpServlet {
@WebServiceRef(wsdlLocation = "WEB-INF/wsdl/client/BankService/BankService.wsdl")
private bankws.BankService service;
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String method = request.getParameter("test");
if (method.equals("createAccount")) {
out.println("Calling Bank.createAccount()");
createAccount(out);
} else if (method.equals("createAccountWrongPrincipal")) {
out.println("Calling Bank.createAccount()");
createAccountWrongPrincipal(out);
} else if (method.equals("debit")) {
out.println("Calling Bank.debit()");
debit(out);
}
out.close();
}
public void createAccount(PrintWriter out) {
try { // Call Web Service Operation
bankws.Bank port = service.getBankPort();
// Map context = ((BindingProvider) port).getRequestContext();
// context.put(BindingProvider.USERNAME_PROPERTY, "bar");
// context.put(BindingProvider.PASSWORD_PROPERTY, "bar123");
int result = port.createAccount("Tom", 2000.00f);
if (result == 1001)
out.println("Bank.createAccount:PASS");
else
out.println("Bank.createAccount:FAIL");
} catch (Exception ex) {
out.println("Bank.createAccount:FAIL");
ex.printStackTrace(out);
}
}
public void debit(PrintWriter out) {
try { // Call Web Service Operation
bankws.Bank port = service.getBankPort();
double result = port.debit(2001, 550.00);
if (result == (550.00 + 1000))
out.println("Bank.debit:PASS");
else
out.println("Bank.debit:FAIL");
} catch (Exception ex) {
out.println("Bank.debit:FAIL");
ex.printStackTrace(out);
}
}
public void createAccountWrongPrincipal(PrintWriter out) {
try { // Call Web Service Operation
bankws.Bank port = service.getBankPort();
int result = port.createAccount("Harry", 2000.00f);
out.println("Bank.createAccount:FAIL");
} catch (SOAPFaultException sfe) {
out.println("Got expected SOAPFaultException");
out.println("Bank.createAccount:PASS");
} catch (Exception ex) {
out.println("Bank.createAccount:FAIL");
ex.printStackTrace(out);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}