이번 시간은 Embed Tomcat사용 방법에 대해 알아보도록 하겠습니다.

Tomcat과 Embedded Tomcat의 차이점은 뭘까요????


일단 다운로드후 Tomcat과 Embed Tomcat의 폴더 내용을 확인해 보겠습니다.

다운로드 URL : http://tomcat.apache.org/download-70.cgi

tomcat_download.PNG


파랑색 네모칸 부분이 Tomcat을 받는곳이고, 빨간색 네모칸 부분이 Embedded Tomcat을 받는 부분입니다.


다운로드후 압축을 풀어 내용을 확인 하면 아래와 같습니다.

Tomcat에는 실행 폴더인 bin, 환경설정 폴더인 conf, 라이브러리, 로그등.... 필용한 각종 폴더들이 있습니다.

tomcat.PNG


Embedded Tomcat의 압축을 풀면 jar파일들 밖에 없습니다.

embedTomcat.PNG

톰캣을 구동 시키기위한 최소한의 것들이 들어 있다는 느낌이 팍 오지 않습니까??


자~! 그럼, 이제 한번 Embedded Tomcat을 만들어 보겠습니다.

이클립스에서 프로젝트를 JavaProcject로 생성하겠습니다.

lib폴더를 생성한 다음 tomcat-embed-core.jar, tomcat-embed-jasper.jar, tomcat-embed-logging-juli.jar, tomcat-embed-logging-log4j.jar을 lib폴더에 복사를 한다음, build path를 잡아줍니다.

구성은 아래와 같습니다.

tomcatproject.PNG



[샘플 소스]

Hellow서블릿

package com.falinux.salmple.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HellowServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	

	public void init() throws ServletException {

	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 응답 content type설정
		response.setContentType("text/html");

		// 내용 출력
		PrintWriter out = response.getWriter();
		out.println("

Hello World!!!!

"); } public void destroy() { } }


Embedded Tomcat

package com.falinux.salmple;

import java.io.File;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Tomcat;

import com.falinux.salmple.servlet.HellowServlet;

public class EmbedTomcat {

	public static void main(String[] args) throws Exception {

		Tomcat tomcat = new Tomcat();

		tomcat.setPort(8782);
		Connector connector = tomcat.getConnector();
		// 인코딩을 UTF-8로 설정
		connector.setURIEncoding("UTF-8");
		
		File docBase = new File(System.getProperty("java.io.tmpdir"));
		Context ctxt = tomcat.addContext("", docBase.getAbsolutePath());
		
		// 서블릿 추가
		Tomcat.addServlet(ctxt, "hellowServlet", new HellowServlet());
		ctxt.addServletMapping("/hellow", "hellowServlet");

		tomcat.start();
		tomcat.getServer().await();
	}

}


[실행]

서버실행

tomcat_exec.PNG



브라우저에서 http://127.0.0.1:8782/hellow

hellow.PNG


Hello World!!!라는 문구가 나타나면 성공....^^


다음 시간은 rest를 연동하는 샘플을 만들어 보도록 하겠습니다.


감사합니다.