You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by jerryli51 <je...@hotmail.com> on 2010/05/13 08:23:11 UTC

when I use embedded tomcat, after start embedded, the tomcat just quit silently

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");
        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);
				}
			}
		});
	}

}

-- 
View this message in context: http://old.nabble.com/when-I-use-embedded-tomcat%2C-after-start-embedded%2C-the-tomcat-just-quit-silently-tp28544175p28544175.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: when I use embedded tomcat, after start embedded, the tomcat just quit silently

Posted by Pid <pi...@pidster.com>.
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)
> 



Re: when I use embedded tomcat, after start embedded, the tomcat just quit silently

Posted by Pid <pi...@pidster.com>.
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");
>         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)