On 13/05/2010 09:17, Pid wrote: > On 13/05/2010 07:23, jerryli51 wrote: >> >> I'm trying to use tomcat 6.0.26, when I invoked start, it just quit silently >> instead of waiting there for http request. Does anyone have ideas? >> >> package mytest; >> >> import java.io.File; >> import java.io.IOException; >> import java.net.InetAddress; >> import java.net.InetSocketAddress; >> import java.net.MalformedURLException; >> import java.net.UnknownHostException; >> import java.util.Properties; >> >> >> import org.apache.catalina.Context; >> import org.apache.catalina.Engine; >> import org.apache.catalina.Host; >> import org.apache.catalina.LifecycleException; >> import org.apache.catalina.core.StandardContext; >> import org.apache.catalina.loader.WebappLoader; >> import org.apache.catalina.realm.MemoryRealm; >> import org.apache.catalina.startup.Embedded; >> >> import org.apache.log4j.Logger; >> >> public class EmbedWebServer { >> >> private static final Logger logger = >> Logger.getLogger(EmbedWebServer.class); >> >> public static void main(String[] args) { >> try { >> new EmbedWebServer(); >> } catch (Exception t) { >> t.printStackTrace(); >> } >> >> } >> >> private Embedded tomcat; >> >> private String catalinaHome; >> >> private String projectHome; >> >> public EmbedWebServer() { >> initConf(); >> >> tomcat = new Embedded(); >> >> tomcat.setName("Catalina"); >> Engine engine = tomcat.createEngine(); >> >> engine.setDefaultHost("localhost"); >> >> Host host = tomcat.createHost("localhost", projectHome); >> Context ctx = tomcat.createContext ( >> "/", "mywebapp");
Oh, and "/" is not a valid path for the default application. It should be an empty string "". p >> ctx.setReloadable(true); >> ((StandardContext) >> ctx).setWorkDir(System.getProperty("java.io.tmpdir") + >> "/jakarta-tomcat/work"); >> >> host.addChild(ctx); >> >> engine.addChild(host); >> engine.setName("Catalina"); >> >> tomcat.addEngine(engine); >> >> tomcat.addConnector(tomcat.createConnector((java.net.InetAddress) null, >> 8080, false)); >> >> registerShutdownHook(); >> try { >> >> tomcat.start(); >> } catch (Exception e) { >> logger.error(e); >> e.printStackTrace(); >> throw new RuntimeException(e); >> } >> >> } >> >> private void initConf() { >> Properties properties = new Properties(); >> try { >> properties.load(EmbedWebServer.class >> >> .getResourceAsStream("/tomcat-conf.properties")); >> catalinaHome = properties.getProperty("catalina.home"); >> >> File f = new File("."); >> projectHome = f.getAbsolutePath(); >> } catch (IOException e) { >> throw new RuntimeException(e); >> } >> } >> >> private void registerShutdownHook() { >> Runtime.getRuntime().addShutdownHook(new Thread() { >> @Override >> public void run() { >> try { >> tomcat.stop(); >> } catch (LifecycleException e) { >> throw new RuntimeException(e); >> } >> } >> }); >> } >> >> } >> > > I got the following stacktrace, with an empty "mywebapp" and an empty > "tomcat-conf.properties". > > Any clues as to what's inside them? > > > p > > > WARNING: Error registering contexts > java.lang.NullPointerException > at > org.apache.catalina.connector.MapperListener.registerHost(MapperListener.java:332) > at > org.apache.catalina.connector.MapperListener.init(MapperListener.java:129) > at org.apache.catalina.connector.Connector.start(Connector.java:1146) > at org.apache.catalina.startup.Embedded.start(Embedded.java:832) > at mytest.EmbedWebServer.<init>(EmbedWebServer.java:60) > at mytest.EmbedWebServer.main(EmbedWebServer.java:20) >
signature.asc
Description: OpenPGP digital signature