package com.test.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.test.generated.Server.IndexerPrx; import com.test.generated.Server.IndexerPrxHelper; import com.test.generated.Server.SearcherPrx; import com.test.generated.Server.SearcherPrxHelper; import com.test.generated.Server.resultMapHolder; public class TClient extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter ("action"); if (action == null || action.equals ("") == true || action.equals ("show") == true) { doShowForm (request, response); } else if (action.equals ("index") == true) { doIndex (request, response); } else if (action.equals ("search") == true) { doSearch (request, response); } } private void doSearch (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println(" A Servlet"); out.println(" "); int status = 0; Ice.Communicator ic = null; try { String[] args = {}; ic = Ice.Util.initialize (args); Ice.ObjectPrx base = ic.stringToProxy("Searcher:default -h 172.20.3.17 -p 10000"); SearcherPrx searcher = SearcherPrxHelper.checkedCast(base); if (searcher == null) { System.out.println ("Invalid proxy"); throw new Error("Invalid proxy"); } String query = request.getParameter ("query"); String category = request.getParameter ("categoria"); String state = request.getParameter ("provincia"); if (query == null) query = ""; if (category == null) category = ""; if (state == null) state = ""; resultMapHolder results = new resultMapHolder (); int resultsNumber = searcher.search (query, category, state, results); Map returnResults = results.value; out.println(" Encontrados " + resultsNumber + " documentos

"); if (resultsNumber > 0) { out.println (""); out.println (""); out.println (""); out.println (""); out.println (""); out.println (""); for (int i = 0; i < resultsNumber; i++) { out.println (""); out.println (""); out.println (""); out.println (""); out.println (""); } out.println ("
ID OfertaNonmbreDescripción
" + returnResults.get ("O_ID_" + i) + "" + returnResults.get ("O_NOMBRE_" + i) + "" + returnResults.get ("O_DESCRIPCION_" + i) + "


"); } } catch (Ice.LocalException e) { e.printStackTrace(); status = 1; out.println(" Ice.LocalException"); } catch (Exception e) { System.err.println(e.getMessage()); status = 1; out.println(" Exception"); } if (ic != null) { // Clean up // try { ic.destroy(); } catch (Exception e) { System.err.println(e.getMessage()); status = 1; } } out.println(" "); out.println(""); out.flush(); out.close(); } }