import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.omg.CORBA.*; import org.omg.CosNaming.*; import Arith.*; /** * Math servlet as a CORBA client * * @author Qusay H. Mahmoud */ public class MathServlet extends HttpServlet { Multiplication mulRef = null; NamingContext ncRef = null; NameComponent nc = null; public void init(ServletConfig config) throws ServletException { super.init(config); try { String args[] = null; // Create and initialize the ORB ORB orb = ORB.init(args, null); // Get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); ncRef = NamingContextHelper.narrow(objRef); // Resolve the object reference in naming nc = new NameComponent("Multiply", " "); } catch(Exception e) { System.out.println("ERROR : " + e); e.printStackTrace(System.out); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println(""); out.println("MathServlet"); out.println(""); out.println(""); String firstnumber = request.getParameter("firstnum"); String secondnumber = request.getParameter("secondnum"); double x = 0.0; double y = 0.0; if (firstnumber != null && secondnumber != null) { org.omg.CORBA.DoubleHolder z = new DoubleHolder(0.0); try { x = (Double.valueOf(firstnumber)).doubleValue(); y = (Double.valueOf(secondnumber)).doubleValue(); } catch (NumberFormatException nfe) {} try { NameComponent path[] = {nc}; mulRef = MultiplicationHelper.narrow(ncRef.resolve(path)); mulRef.multiply(x, y, z); } catch (Exception e) {} out.println("

The operation "+ x + " * "+y+ " = "+z.value+"

"); } else { out.println("Null."); } out.println(""); out.println(""); } }