2010-03-08 2 views
4

저는 Jetty (버전 6.1.22)를 사용하여 Java 웹 응용 프로그램을 서비스하고 있습니다. Jetty가 웹 리소스를위한 두 개의 다른 폴더를 보이게하고 싶습니다.부두가있는 여러 개의 webroot 폴더

  • http://localhost/web/first.jsp
  • http://localhost/web/second.jsp

이 같은 부두를 시작 시도 :

Server server = new Server(); 
SocketConnector connector = new SocketConnector(); 
connector.setPort(80); 
server.setConnectors(new Connector[] { connector }); 

WebAppContext contextWeb1 = new WebAppContext(); 
contextWeb1.setContextPath("/web"); 
contextWeb1.setWar("project1/src/main/webapp"); 
server.addHandler(contextWeb1); 

WebAppContext contextWeb2 = new WebAppContext(); 
contextWeb2.setContextPath("/web"); 
contextWeb2.setWar("project2/src/main/webapp"); 
server.addHandler(contextWeb2); 

server.start(); 

 
+- project1 
| +- src 
|  +- main 
|   +- webapp 
|    +- first.jsp 
| 
+- project2 
    +- src 
     +- main 
      +- webapp 
       +- second.jsp 

나는 부두가 모두 URL을 제공하고 싶습니다 :이 레이아웃을

그러나 first.jsp 만 제공하고 second.jsp에 대해 404를 반환합니다.

어떻게 작동합니까? 동일한 컨텍스트 (즉, 동일한 ClassLoader, 동일한 SessionManager 등)에 머무르고 싶습니다.

+0

가능한 중복 (http://stackoverflow.com/questions/11410388/add-more-than-one-resource-directory 부두에) –

답변

9

가장 쉬운 방법은 웹 응용 프로그램/그 맥락 대신 상황에서 XML 파일을 사용하여 배포하는 것입니다 함께 배포 한합니다 :

Server server = new Server(80); 
WebAppContext context = new WebAppContext(); 
context.setContextPath("/"); 
ResourceCollection resources = new ResourceCollection(new String[] { 
    "project1/src/main/webapp", 
    "project2/src/main/webapp", 
}); 
context.setBaseResource(resources); 
server.setHandler(context); 
server.start(); 

상세 정보 : [부두에 하나 이상의 자원 디렉토리 추가]의 http://docs.codehaus.org/display/JETTY/Multiple+WebApp+Source+Directory

0

여러분이하고 싶은 WebAppContext의 하위 클래스를 작성해야한다고 생각합니다. 6.1.12 이후, 이것은 WebAppContext의 기본 리소스에 ResourceCollection를 사용하여 지원되는