00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030  
00031 package org.objectweb.proactive.core.rmi;
00032 
00033 import org.objectweb.proactive.core.util.UrlBuilder;
00034 
00035 import java.io.IOException;
00036 import java.io.InputStream;
00037 import java.io.OutputStream;
00038 
00039 import java.net.UnknownHostException;
00040 
00041 import javax.servlet.http.HttpServlet;
00042 import javax.servlet.http.HttpServletRequest;
00043 import javax.servlet.http.HttpServletResponse;
00044 
00045 
00046 public class ClassServerServlet extends HttpServlet {
00047     
00048     public static final String SERVLET_NAME = "/ProActiveHTTP";
00049     private String url;
00050     private ClassServer classServer;
00051     private HttpServletRequest request;
00052     private HttpServletResponse response;
00053     private static int port;
00054 
00055     public ClassServerServlet(int newport) {
00056         System.out.println("New Class Server Servlet");
00057         this.port = newport;
00058         ClassServerHelper helper = new ClassServerHelper();
00059         System.setProperty("proactive.http.port", this.port + "");
00060         try {
00061             helper.initializeClassServer();
00062         } catch (IOException e) {
00063             e.printStackTrace();
00064         }
00065     }
00066 
00067     public static int getPort() {
00068         return port;
00069     }
00070 
00071     public void doGet(HttpServletRequest request, HttpServletResponse response) {
00072         
00073 
00074 
00075         doPost(request, response);
00076         
00077         
00078         
00079         
00080         
00081         
00082         
00083         
00084         
00085         
00086         
00087     }
00088 
00089     public void doPost(HttpServletRequest request, HttpServletResponse response) {
00090         try {
00091             this.request = request;
00092             this.response = response;
00093 
00094             InputStream in = request.getInputStream();
00095             OutputStream out = response.getOutputStream();
00096             RequestInfo reqInfo = new RequestInfo();
00097             reqInfo.read(this.request);
00098             HTTPRequestHandler service = new HTTPRequestHandler(in, out,
00099                     reqInfo, response);
00100             service.run();
00101         } catch (IOException e) {
00102             e.printStackTrace();
00103         }
00104     }
00105 
00106     public static String getUrl() {
00107         try {
00108             
00109             
00110             String url = UrlBuilder.buildUrl(UrlBuilder.getHostNameorIP(
00111                         java.net.InetAddress.getLocalHost()), "", "http:", port); 
00112 
00113 
00114             if (url.charAt(url.length() - 1) == '/') {
00115                 url = url.substring(0, url.length() - 1);
00116             }
00117             url += SERVLET_NAME;
00118             return url;
00119         } catch (UnknownHostException e) {
00120             e.printStackTrace();
00121         }
00122         return null;
00123     }
00124 }