2012-10-04 4 views
1

표준 Maven 웹 애플리케이션 구조가 정의되어 있으며 Spring MVC를 사용합니다.Embedded Jetty (Maven을 사용한) 8 개의 핫 배포 클래스

개발중인 응용 프로그램을 테스트하기 위해 내장 된 Jetty 서버 (Java 클래스)를 사용하고 있습니다.

부두 서버를 만드는 데 사용되는 코드는 다음과 같습니다. JSP 파일을 변경하면 즉시 브라우저에 표시됩니다.

그러나 컨트롤러 (예 : 컨트롤러)를 변경하면 변경 사항이 핫 전개되지 않습니까?

이 기능을 사용하려면 어떻게해야합니까?

나는이를 검색하고 내가 클래스 org.eclipse.jetty.util.Scanner하고 특히 setScanInterval 방법을 사용할 필요가 있다고 생각하지만, 확실하지 않은 방법이 묶는? 여기

당신은 WebAppProvider와 DeploymentManager를 사용하는 데 필요한 서버에게 뜨거운 배포에 대한 사전

답변

3

에서

String webAppDir = "src/main/webapp/"; 
    Server server = new Server(8080); 
    WebAppContext webApp = new WebAppContext(); 
    webApp.setContextPath("/"); 
    webApp.setDescriptor(webAppDir + "/WEB-INF/web.xml"); 
    webApp.setResourceBase(webAppDir); 
    webApp.setParentLoaderPriority(true); 

    HandlerCollection hc = new HandlerCollection(); 
    ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection(); 
    hc.setHandlers(new Handler[] { contextHandlerCollection }); 
    hc.addHandler(webApp); 
    server.setHandler(hc); 
    return server; 

감사를 생성하는 코드입니다. 변경 사항 검색 및 webapp의 다시로드를 관리하도록 구성 할 수 있습니다. 따라서 WebappContext는 웹 애플리케이션의 배치를 관리하는 것이 아니며 전개되는 컨테이너 클래스 일 뿐이므로 배치/재배치의 개념을 처리 할 수있는 다른 메커니즘이 있습니다.

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-deploy/src/test/resources/jetty-deploy-wars.xml

당신이 XML의 덩어리를 가지고 자바는이 임베디드 할 필요가 호출로 변환 할 수 있습니다.

자동 클래스 리로딩을 제공하는 jrebel jvm 플러그인과 같은 것을 사용하십시오.

+0

필자는 위의 예제를 따르지만 결국에는 내 응용 프로그램이 Spring을 사용하고 있으므로 편집을 할 때마다 다시 시작하는 속도가 느려지므로 클래스의 핫 배포를 사용하지 않기로 결정했습니다. –

+0

나는 그 문제를 다루는 jrebel에 관한 좋은 것들을 들었다. 나는 당신이 그것을 소용돌이 치고 싶다면 자유 재판을받는다고 생각한다. –

관련 문제