Revision: 22057
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 30, 2009 09:43 by narkisr
Initial Code
import org.simpleframework.http.Request import org.simpleframework.http.Response import org.simpleframework.http.core.Container import org.simpleframework.transport.connect.Connection import org.simpleframework.transport.connect.SocketConnection class HttpContainer implements Container { Connection connection def setup(){ connection = new SocketConnection(this); SocketAddress address = new InetSocketAddress(13080); connection.connect(address); this } public void handle(Request request, Response response) { PrintStream body = response.getPrintStream(); long time = System.currentTimeMillis(); response.set("Content-Type", "text/xml;charset=utf-8"); response.set("Server", "Apache-Coyote/1.1"); response.setDate("Date", time); def text = simpleRoute(request) body.println(text); body.close(); } def simpleRoute(request){ switch(request.target){ case "/some/url/file": return new File('src/test/resources/file').text case "/some/url/hello": return 'hello' default: throw new RuntimeException("no route found") } } def close(){ connection.close() } }
Initial URL
Initial Description
This is excellent for testing (mocking a SOAP server for example), we use an in memory http server in order to answer client requests.
Initial Title
Starting an in memory http server with custom routes
Initial Tags
http, server, simple
Initial Language
Groovy