2012-08-16 13 views
5

나는 그러한 application.xml을 가지고 있습니다.여러 context root를 application.xml의 하나의 web-uri에 매핑하십시오.

<module> 
    <web> 
     <web-uri>services-inboxService.war</web-uri> 
     <context-root>/services/inboxService</context-root> 
    </web> 
    </module> 

나는 하나 개의 웹-URI에 서로 다른 상황에 뿌리를지도하고 싶습니다. 그러나 제약 조건이 있으며 각 모듈은 하나의 섹션과 각 - 단 하나의 컨텍스트 루트 섹션을 포함해야합니다. 이 war 파일을 다른 이름으로 복사하는 것을 제외하면 어떤 방법이 있습니까?

답변

5

예고 신 Maxim- 난 당신이 자바 EE 기반 웹 응용 프로그램의 URI의 개념에 대해 명확해야 믿습니다

사람이 같은 의해 제공되는 다른 호스트 + 포트 조합을 사용하고자하는 경우 이제
<hostname:port/context-root/resource-path?parameters> 

설치된 응용 프로그램에서 Tomcat, WebSphere와 같은 대부분의 응용 프로그램 서버에서 지원하는 가상 호스팅 개념을 사용해야합니다. 누군가가 웹 응용 프로그램에서 동일한 리소스에 매핑하기 위해 다른 자원 경로를 사용하고자 할 경우

, 그것은 이제 누군가가 다른를 사용하고자하는 경우

web.xml에

에 URL 패턴을 구성하여 수행됩니다 응용 프로그램의 단일 설치에 대한 컨텍스트 루트는 불가능합니다. 당신이 클래스 로더의 관점에서 생각할지라도. 문맥에 따라 앱 서버 클래스 로더의 자식 인 컨텍스트 클래스 로더가 생성됩니다. 하나의 웹 애플리케이션에 대해 하나 이상의 컨텍스트 클래스 로더를 사용할 수 없습니다. 그렇지 않으면 자원/클래스 참조를 확인할 수 없습니다. 따라서 유일한 해결책은 앱의 여러 인스턴스를 서로 다른 맥락에서 실행하는 것입니다.