Sunday, May 18, 2008
in the belly of the beast
I write this from my Google tent, pitched in the Google courtyard, connected to the intarnets using Google's network; and of course using Google software. I'm here for wherecamp catching up on all things related to geo and the web.
Observations of the campus:
+1 for the heated toilet seats
+1 for the yummy soy yogurt
+1 for the schweet tent swag with the Google logo and the slogan "I'm feeling lucky."
odd moment - watching Google employees pile out of cars on a Saturday night to do their laundry at the Google campus
Observations on wherecamp:
People are posting and editing the wiki here and here.
Saturday, May 10, 2008
Embedded tomcat and launch4j FTW
I've been meaning to get around to this for years.
Using this example, I compiled it with my webapps and then used lauch4j to create a windows executable wrapper. Throw in a jre and some data and I'm good to go. Now I just give the live demos to the sales people and clients on a USB stick without having to go through the install or setting it up on a web server.
Here's the code example:
import org.apache.catalina.*; import org.apache.catalina.connector.*; import org.apache.catalina.realm.*; import org.apache.catalina.startup.*; public class EmbeddedTomcat { // Instance variables: private String name; private int portNumber; private Embedded embedded; private Engine baseEngine; private Host baseHost; private Connector httpConnector; /** Creates a new instance of EmbeddedTomcat */ public EmbeddedTomcat( String name, int portNumber) { this.name = name; this.portNumber = portNumber; init(); } private void init() { MemoryRealm realm; Context context; String baseEngineName; String hostName; embedded = new Embedded(); // set default logger and realm /* FileLogger fileLog = new FileLogger(); fileLog.setDirectory("."); fileLog.setPrefix(name); fileLog.setSuffix(".log"); fileLog.setTimestamp(true); embedded.setLogger(fileLog); */ realm = new MemoryRealm(); embedded.setRealm(realm); // create an Engine baseEngine = embedded.createEngine(); // set Engine properties baseEngineName = name + "Engine"; hostName = name + "Host"; baseEngine.setName(baseEngineName); baseEngine.setDefaultHost(hostName); baseHost = embedded.createHost(hostName, "webapps"); baseEngine.addChild(baseHost); // RootContext context = addContext("", "ROOT"); // ManagerContext context = addContext("/manager", "manager"); context.setPrivileged(true); /* This is where you add your webapps*/ // GeoBrowserContext context = addContext("/geobrowser", "geobrowser"); context.setPrivileged(true); // add new Engine to set of Engine for embedded server embedded.addEngine(baseEngine); // create Connector httpConnector = embedded.createConnector((java.net.InetAddress) null, portNumber, false); // add new Connector to set of Connectors for embedded server, associated // with Engine embedded.addConnector(httpConnector); } public void start() { // start server try { embedded.start(); } catch (org.apache.catalina.LifecycleException ex) { ex.printStackTrace(); //fileLog.log("Startup failed"); //fileLog.log(ex.getMessage()); } } public void stop() { // start server try { embedded.stop(); } catch (org.apache.catalina.LifecycleException ex) { ex.printStackTrace(); //fileLog.log("Startup failed"); //fileLog.log(ex.getMessage()); } } public Context addContext( String path, String docBase) { Context c; c = embedded.createContext(path, docBase); baseHost.addChild(c); return c; } public static void main(String[] args) { new EmbeddedTomcat("RedSpider", 8080).start(); } }
Subscribe to:
Posts (Atom)