From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../stateless/container/PricerClientServlet.java | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateless/container/PricerClientServlet.java (limited to 'Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateless/container/PricerClientServlet.java') diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateless/container/PricerClientServlet.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateless/container/PricerClientServlet.java new file mode 100644 index 0000000..09b59d6 --- /dev/null +++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateless/container/PricerClientServlet.java @@ -0,0 +1,84 @@ +package examples.stateless.container; + +import javax.ejb.EJB; +import javax.naming.InitialContext; +import javax.naming.NameClassPair; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.servlet.http.HttpServlet; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import examples.stateless.interfaces.PricerInjection; +import examples.stateless.interfaces.PricerLookup; + +/** + * Servlet Class + * + * @web.servlet name="PricerClient" display-name="Name for PricerClient" + * description="Description for PricerClient" + * @web.servlet-mapping url-pattern="/PricerClient" + * @web.servlet-init-param name="A parameter" value="A value" + */ +public class PricerClientServlet extends HttpServlet { + @EJB PricerInjection pi2; + @EJB PricerLookup pl2; + + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + doPost(req, resp); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + double price = 85.0; + String state = "ny"; + + PrintWriter pw = resp.getWriter(); + resp.setContentType("text/html"); + pw.println("\n\t"); + + try { + InitialContext ic = new InitialContext(); + pw.println("

Here are the JNDI names bound for beans in this example:

"); + pw.println("
    "); + NamingEnumeration ne = ic.list(""); + while (ne.hasMore()) { + NameClassPair ncp = (NameClassPair) ne.next(); + pw.println("
  1. " + ncp.getName()); + } + pw.println("
"); + + // Pricer pricer = (Pricer)ic.lookup(Pricer.class.getName()); + PricerInjection pi = (PricerInjection)ic.lookup("#"+PricerInjection.class.getName()); + PricerLookup pl = (PricerLookup)ic.lookup("#"+PricerLookup.class.getName()); + + pw.println("Tax (using lookup) on: " + price + " for State: " + + state + " is: " + pl.getTaxLookup(price, state) + "
"); + + pw.println("Tax (using injection) on: " + price + " for State: " + + state + " is: " + pi.getTaxInjection(price, state) + + "
"); + + pw.println("Tax (using lookup from @EJB) on: " + price + " for State: " + + state + " is: " + pl2.getTaxLookup(price, state) + "
"); + + pw.println("Tax (using injection @EJB) on: " + price + " for State: " + + state + " is: " + pi2.getTaxInjection(price, state) + + "
"); + } + catch (NamingException e) { + e.printStackTrace(); + } + + pw.println("\t\n"); + } +} -- cgit v1.2.3