Professional Documents
Culture Documents
Jetty
Jetty
자바 기반의 웹어플리케이션 서버
API
유연함 , 확장성 , 작은 용량 , 빠른 속도 , 자바
어플리케이션에 임베딩 , 비동기 지원
다양한 Connector 와
Handler 를 제공한다 .
적절한 Conector 와
Handler 사용으로
오버헤드를 줄일 수 있다
.
Connector
NIO 지원
non Bolcking
Handlers
받은 Request 를 처리
Running Jetty
start.jar
java -jar start.jar
java -Djetty.host=localhost -Djetty.port=8080 -jar
start.jar etc/jetty.xml
jetty-runner.jar
java -jar jetty-runner.jar my.war
java -jar jetty-runner.jar --path /one my1.war
--path /two my2
http://localhost:8080/Hello?USERID=ywmin
Handler
Handler handler=new AbstractHandler() {
public void handle(String target, HttpServletRequest request,
HttpServletResponse response, int dispatch)
throws IOException, ServletException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>Hello</h1>");
((Request)request).setHandled(true);
}
};
Server server = new Server(8080);
server.setHandler(handler);
server.start();
Embedding Jetty
Servlet
Server server = new Server(8080);
Context root = new Context(server,"/",Context.SESSIONS);
root.addServlet(new ServletHolder(new HelloServlet("Ciao")), "/*");
server.start();
jetty.xml
Server server = new Server();
XmlConfiguration configuration = new XmlConfiguration(new
File("myJetty.xml").toURL());
configuration.configure(server);
server.start();
Embedding Jetty
Loading WAR
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(PORT);
connector.setHost("127.0.0.1");
server.addConnector(connector);
<Call name="addListener">
<Arg>
<New class="org.mortbay.http.SocketListener">
<Set name="Host">
<SystemProperty name="service.listen.host" default="localhost"/>
</Set>
<Set name="Port">
<SystemProperty name="service.listen.port" default="7501"/>
</Set>
</New>
</Arg>
</Call>
... 다음 ..
Configuration jetty.xml
... 이어서 ...
<Call name="getContext">
<Arg>/embed</Arg>
<Call name="addServlet">
</Call>
</Call>
</Configure>
Test with Jetty
public class OneHandlerTest {
private static Server server;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
server = new Server();
Connector connector=new SocketConnector();
connector.setPort(8080);
server.setConnectors(new Connector[]{connector});
server.start();
}
@Test
public void testGetContentOK( ) throws IOException {
...........
}
@AfterClass
public static void tearDownAfterClass( ) throws Exception {
server.stop();
}
}
Resources
http://jetty.mortbay.org/jetty/