| 1 16 package org.jmanage.webui.servlets; 17 18 import org.jmanage.core.remote.RemoteInvocation; 19 import org.jmanage.core.remote.InvocationResult; 20 import org.jmanage.core.remote.server.ServiceCallHandler; 21 22 import javax.servlet.http.HttpServlet ; 23 import javax.servlet.http.HttpServletRequest ; 24 import javax.servlet.http.HttpServletResponse ; 25 import javax.servlet.ServletException ; 26 import javax.servlet.ServletInputStream ; 27 import javax.servlet.ServletOutputStream ; 28 import java.io.IOException ; 29 import java.io.ObjectInputStream ; 30 import java.io.ObjectOutputStream ; 31 32 37 public class ServiceInvokerServlet extends HttpServlet { 38 39 private static String RESPONSE_CONTENT_TYPE = 40 "application/x-java-serialized-object; class=org.jmanage.core.remote.InvocationResult"; 41 42 45 protected void doGet(HttpServletRequest request, HttpServletResponse response) 46 throws ServletException , IOException { 47 processRequest(request, response); 48 } 49 50 53 protected void doPost(HttpServletRequest request, HttpServletResponse response) 54 throws ServletException , IOException { 55 processRequest(request, response); 56 } 57 58 public String getServletInfo() { 59 return "Servlet to remotely invoke service methods"; 60 } 61 62 63 protected void processRequest(HttpServletRequest request, 64 HttpServletResponse response) 65 throws ServletException , IOException { 66 67 response.setContentType(RESPONSE_CONTENT_TYPE); 68 try { 69 70 ServletInputStream sis = request.getInputStream(); 71 ObjectInputStream ois = new ObjectInputStream (sis); 72 RemoteInvocation invocation = (RemoteInvocation) ois.readObject(); 73 ois.close(); 74 75 InvocationResult result = ServiceCallHandler.execute(invocation); 76 77 ServletOutputStream sos = response.getOutputStream(); 78 ObjectOutputStream oos = new ObjectOutputStream (sos); 79 oos.writeObject(result); 80 oos.close(); 81 } catch (Throwable t) { 82 83 ServletOutputStream sos = response.getOutputStream(); 84 ObjectOutputStream oos = new ObjectOutputStream (sos); 85 oos.writeObject(new InvocationResult(t)); 86 oos.close(); 87 } 88 } 89 } 90 | Popular Tags |