Tomcat

Tomcat은 servlet engine의 한 형태로 오픈 소스 이다. renderging page 및 core적인 성격의
servlet engine의 역할을 수행하던 초기 버전에 비해 현재 여러가지 부가 기능 들이 추가되면서
그 형태가 약간 비대해 졌다. 하지만 최근 웹 프로그래밍의 추세를 보면 client-side의 scripting에 
보다 많은 비중이 실리고, back-end의 servlet은 그 역할이 순수히 controller 기능을 수행하는
형태로 변화하고 있었다.

Jetty

servlet engine의 본연의 기능만에 집중한 형태인 Jetty는 tomcat보다 빠르고 tomcat이 지원하는
간단한 부가적인 기능 몇개를 지원한다. 하지만 documentation이 굉장히 형편없고 현재 jetty 서버의 
ownership에 대한 문제가 있으며 embeded 형태로 servlet engine을 구동하기엔 약간은 많은 lib와
xml 설정 파일들이 필요하다

Winstone

Hudson에서 사용하는 servlet engine으로 Jetty의 documentation 등의 단점은 어느 정도 커버해준다.
embeded 형태로 사용하기위해 필요한 것은 jar 파일 하나며 단 소스 몇 라인이면 충분하다.
필요한 설정값은 map형태에 key-value 쌍으로 담기만 하면 된다. 물론 websocket 지원이라 던지
licence 등의 미흡한 점은 있지만 간단한 WAR파일을 WAS로 구동시키기에는 더 쉽고 더 편리한
servlet engine이다.

maven pom.xml

<dependency>
<groupId>net.sourceforge.winstone</groupId>
<artifactId>winstone</artifactId>
<version>0.9.10</version>
</dependency>

sample source to start

Map config = new HashMap();
config.put(“webroot”, “webapps/my-killer-app/”);
Launcher.initLogger(config);
Launcher winstone = new Launcher(config);

command line 실행

java -jar winstone.jar --webroot [your-exploded-war-base-directory-or-war-file-location] 

다음의 기능들이 있다.

-HTTPS support
-JAAS support
-Apache/JK support
-Cluster support
-Hot-redeploy of servlet classes
-JNDI support
신고
Posted by Stewie


티스토리 툴바