자바 응용 프로그램 에 Tomcat 시작 내장

참고: http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/startup/Embedded.html
가끔 은 Tomcat 의 사용 에 대해 자신의 응용 프로그램 에 내장 되 어 있 고 응용 프로그램 이 Tomcat 서비스의 시작, 종료 등 을 제어 해 야 합 니 다.이 때 Tomcat 의 startup 패키지 에서 제공 하 는 Embedded 클래스 를 통 해 Tomcat 을 응용 프로그램 에 삽입 할 수 있 습 니 다.이러한 장점 은 자신의 응용 프로그램 에 대한 통제 가 비교적 좋 고 외부 에서 볼 때 Tomcat 응용 이 라 고 할 정도 로 강해 보이 지 않 는 다 는 것 이다 (히히).
 
단점: 비교적 복잡 한 응용 에 대해 사용 하기 가 매우 복잡 해서 아직 이해 하지 못 했다.예 를 들 어 지구 화 매개 변수, 데이터 소스 연결 등 을 설정 하면 비교적 복잡 하 다.이 때 는 게 으 름 을 피 울 수 있 습 니 다. 아래 방법 으로 Tomcat 을 내장 할 수 있 습 니 다.
public void start() {
		
		String command = "cmd.exe /c E:\\test\\apache-tomcat-5.5.27\\bin\\startup.bat";
		OSExecute.command(command);
	}
	
public void stop() {
		String command = "cmd.exe /c E:\\apache\\apache-tomcat-5.5.27\\bin\\shutdown.bat";
		OSExecute.command(command);
	}

 
하하, 사실은 콘 솔 의 시작 방법 으로 시작 하 는 것 입 니 다. 만약 당신 의 응용 시스템 이 소스 코드 에 따라 발표 되 지 않 는 다 면 이것 은 문외한 도 속 일 수 있 습 니 다.이렇게 시작 하려 면 CATALINA 를 설정 해 야 합 니 다.HOME 환경 변수 만 가능 합 니 다.
 
다음은 Embedded 방식 으로 Tomcat 을 내장 합 니 다.
 
/**
 *   API     , Tomcat          
 * 
 * 
 * @author kongxy
 * @version 0.1
 * 2009-5-25
 */
public class ServerManager {

	// TODO        
	private final String tomcatHome = "E:\\test\\apache-tomcat-5.5.27";
	private Embedded tomcat;
	
	public void startServer() {

		//   Tomcat     ,   Tomcat Server
		tomcat = createTomcat(tomcatHome);
		try {
			tomcat.start();
			System.out
					.println("---------- Tomcat Server start over. ------------");
			Lifecycle lc;
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	
	public void stopServer() {
		try {
			tomcat.stop();
			System.out.println("---------------- Tomcat Server stoped -----------------");
		} catch (LifecycleException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * entrypoint
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		ServerManager manager = new ServerManager();
		manager.startServer();
//		manager.stopServer();
	}

	private static Embedded createTomcat(String path) {
		//      Tomcat Server   
		Embedded tomcat = new Embedded();
		//   Tomcat     
		tomcat.setCatalinaHome(path);
		//   Tomcat  
		Engine engine = tomcat.createEngine();
		engine.setName("Catalina");
		//   Host,  Host     
		Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome()
				+ "/webapps");
//		host.setAppBase("webapps");
		host.setAutoDeploy(true);
		Context odeContext = tomcat.createContext("/google", host.getAppBase() + "/google");
		
		host.addChild(odeContext);
		
		//  Host  Engine
		engine.addChild(host);
		engine.setDefaultHost(host.getName());
		
		tomcat.addEngine(engine);
		try {
			// Tomcat  Connector,    (127.0.0.1)   
			tomcat.addConnector(tomcat.createConnector(InetAddress
					.getByName("127.0.0.1"), 8080, false));
		} catch (UnknownHostException e) {
			System.err.println("  Tomcat Server 127.0.0.1:8080  ,          .");
			e.printStackTrace();
			tomcat = null;
		}
		return tomcat;
	}
}

 
여기까지 입 니 다. 만약 에 어떤 친구 가 비교적 복잡 한 응용 프로그램 을 어떻게 포장 하 는 지 알 고 있다 면 메 시 지 를 남 겨 주세요. 아니면 링크 를 주 셔 도 됩 니 다. 감사합니다!

좋은 웹페이지 즐겨찾기