1 package net.sf.crispy.impl.caucho; 2 3 4 import net.sf.crispy.impl.MiniHttpServer; 5 import net.sf.crispy.impl.MiniServer; 6 7 import org.apache.commons.logging.Log; 8 import org.apache.commons.logging.LogFactory; 9 10 import test.crispy.example.service.Echo; 11 import test.crispy.example.service.EchoImpl; 12 13 /** 14 * Mini web server implementation with two servlets (BurlapServlet and HessianServlet). 15 * 16 * @author Linke 17 * 18 */ 19 public class MiniCauchoServer implements MiniServer { 20 21 protected static final Log log = LogFactory.getLog (MiniServer.class); 22 23 public static final int DEFAULT_PORT = 8091; 24 25 public static final int SERVER_TYPE_BOTH = 0; 26 public static final int SERVER_TYPE_BURLAP = 1; 27 public static final int SERVER_TYPE_HESSIAN = 2; 28 29 30 private MiniHttpServer server = null; 31 private int serverType = SERVER_TYPE_BURLAP; 32 33 public MiniCauchoServer() { 34 this(SERVER_TYPE_BOTH, DEFAULT_PORT); 35 } 36 37 public MiniCauchoServer(int pvPort) { 38 this(SERVER_TYPE_BOTH, pvPort); 39 } 40 41 public MiniCauchoServer(int pvServerType, int pvPort) { 42 serverType = pvServerType; 43 server = new MiniHttpServer(pvPort); 44 server.setContext("/crispy"); 45 } 46 47 public int getServerType() { return serverType;} 48 49 public void addService (String pvServiceInterface, String pvServiceObject) { 50 if (serverType == SERVER_TYPE_BURLAP) { 51 server.addServlet("/burlap/*", BurlapServlet.class.getName(), pvServiceInterface, pvServiceObject); 52 } else if (serverType == SERVER_TYPE_HESSIAN) { 53 server.addServlet("/hessian/*", HessianServlet.class.getName(), pvServiceInterface, pvServiceObject); 54 } else { 55 server.addServlet("/burlap/*", BurlapServlet.class.getName(), pvServiceInterface, pvServiceObject); 56 server.addServlet("/hessian/*", HessianServlet.class.getName(), pvServiceInterface, pvServiceObject); 57 } 58 } 59 60 public void start() { 61 try { 62 server.start(); 63 } catch (Exception e) { 64 if (log.isWarnEnabled()) { 65 log.warn("Error by MiniCauchoServer stop: " + e); 66 } 67 } 68 } 69 70 public void stop() { 71 try { 72 server.stop(); 73 } catch (Exception e) { 74 e.printStackTrace(); 75 } 76 } 77 78 public static void main(String[] args) { 79 MiniCauchoServer miniServer = new MiniCauchoServer(); 80 miniServer.addService(Echo.class.getName(), EchoImpl.class.getName()); 81 miniServer.start(); 82 System.out.println("Server is started ..."); 83 } 84 }