WAR 파일이 WAR 파일 이름을 기반으로하지 않는 자체 컨텍스트 루트를 지정하도록 Tomcat 7을 구성하려면 어떻게해야합니까? 예 : A-1.0.0.war 및 B-1.0.0.war이 있고 동일한 Tomcat 인스턴스에 모두 배포하려고합니다. 배포가 끝나면 브라우저에서 localhost : 8080/portal을 가리키고 A-1.0.0.war의 내용을보고 싶습니다. localhost : 8080/rest/v1/helloworld에 대한 나머지 요청을 컬링하고 싶습니다. B-1.0.0.war에서.Tomcat 7의 WAR 파일 내에서 컨텍스트 루트 구성
나는 여러 가지 방법으로 구성을 시도해 보았지만 위의 시나리오에서는 위의 시나리오를 작성하지 않았습니다. 또한 Tomcat 문서가 너무 부족하여 완전히 이해할 수 없습니다. 내가 읽은 :
:%의 CATALINA_HOME %의/conf의에서, 사람들을 소화 한 후/server.xml에 나는이 하나의 호스트 항목이
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
deployXML="true" copyXML="true" >
<Context path="/portal" docBase="/www/" reloadable="true" swallowOutput="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="www-sample-com-log." suffix=".txt" timestamp="true"/>
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
이것은 t의 하나에서 얻은 A.war/META-INF/context.xml의 전체 내용입니다. 그는 WAR 파일 :
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/portal" docBase="ROOT/portal" />
내가 관리 콘솔을 통해 톰캣에 배포
, 나는 버튼을 "배포 할 WAR 파일의"를 사용하고,하지만 난 "배포 디렉토리 또는 WAR 파일에서 모든 필드를 지정하고 있지 않다 서버에 있습니다 "(왜냐하면 나는 이것들을 WAR 자체에서 가져 오기를 원하기 때문에 다른 누군가가 그것을 지정하지 않기를 바란다). webapps 디렉토리를 열면이 목록이 표시됩니다. 나는portal/
대신
A-1.0.0/
디렉토리의 참조 기대 :이 도움이 경우
A-1.0.0/
B-1.0.0/
docs/
examples/
host-manager/
manager/
ROOT/
sample/
A-1.0.0.war
B-1.0.0.war
sample.war
, 여기 내 시나리오에 몇 가지 뒷이야기입니다. 제 목표는 단일 .jar에 번들 된 응용 프로그램을 두 개의 .war 파일로 옮기는 것입니다. 현재, Spring MVC와 JSP 애플리케이션을 모두 포함하는 빌드 아티팩트로서 하나의 jar 파일을 생성하는 maven 프로젝트입니다. 내 클라이언트가 Java를 사용하여 명령 줄에서 응용 프로그램을 시작합니다. 내가 가고 싶은 곳은 Tomcat의 관리 콘솔을 통해 누군가가 WAR 파일을 배포 할 수있는 dev 서버에 Tomcat 7을 설치하는 것이다. 또한 WAR 파일 이름에 버전 번호를 넣음으로써 WAR를 처리하는 사람들이 배포하는 내용을 분명히 알 수 있습니다. 모든 빌드/릴리스 사이클에서 이전 전쟁의 배포를 취소하고 새로운 전쟁을 전개하기를 바랍니다. 부수적으로 - 전쟁으로 응용 프로그램을 배포하려고 시도한 것은 이번이 처음인데, 이렇게하는 것이 가장 좋은 연습을 놓친 것일 수 있으므로 좋은 방법이 아니라면 친절하게 수정하십시오.
답변 해 주셔서 감사합니다. 이것은 Tomcat이'conf/Catalina/localhost /'폴더에서 xml 파일을 찾을 것이라는 것을 완전히 놓쳤다. 이제'conf// /'이 문서에서 의미하는 바를 이해합니다. 내가 내일 일하러 돌아올 때 이것을 시도 할 것이다. 하지만 다음 질문에 다음 달에 이전 1.0.0 버전보다 A-2.0.0.war를 배포하려면 다른 Context docBase = "Ax.yzwar"> (또는 기존 WAR 파일을 변경하여 새 WAR 파일의 이름과 일치 시키시겠습니까? 이제 버전 번호를 WAR 파일 이름에 넣는 것이 나쁜 생각이라고 생각합니다 ... –
다른 컨텍스트 경로를 사용하여 두 버전을 계속 실행하지 않으려면 기존 xml 파일의'docBase'를 업데이트하십시오. – Andreas