Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Jetty 7を組み込みで動作させる

参考にさせていただいたサイト
Jetty/Tutorial/Embedding Jetty - Eclipsepedia
http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty

main()からJettyを起動 - ねこだいすき
http://d.hatena.ne.jp/tubureteru/20100829/p1


pom.xmlには、

<dependency> 
	<groupId>org.eclipse.jetty</groupId> 
	<artifactId>jetty-server</artifactId> 
	<version>7.2.1.v20101111</version> 
</dependency> 

ではなく、

<dependency> 
	<groupId>org.eclipse.jetty</groupId> 
	<artifactId>jetty-webapp</artifactId> 
	<version>7.2.1.v20101111</version> 
</dependency> 

が必要だ(依存性解決でjetty-serverもセットアップされる)。

サーバーを起動するコード。

public class SampleServer { 

	public static void main(String[] args) { 
		Server server = new Server(8080); 
		
		WebAppContext context = new WebAppContext(); 
		context.setContextPath("/"); 
		context.setWar("src/main/webapp"); 
		context.setParentLoaderPriority(true); 
		server.setHandler(context); 
		
		try { 
			server.start(); 
			server.join(); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} 
	} 

} 

ちなみにparentLoaderPriorityは、

The parentLoaderPriority parameter is a boolean that selects of the standard java parent first delegation Classloading will be used or the servlet specification webapp Classloading priority.

のため。