복붙노트

[SPRING] 컨테이너 톰캣 서버에서 전개 된 (Spring Boot) 전쟁의 컨텍스트 경로 변경. 따라서 데모가 아닙니다.-0.01-SNAPSHOT

SPRING

컨테이너 톰캣 서버에서 전개 된 (Spring Boot) 전쟁의 컨텍스트 경로 변경. 따라서 데모가 아닙니다.-0.01-SNAPSHOT

많은 구성을 사용하여 내 사이트를 배포하려고 시도하여 배포 할 전쟁 이름에서 변경되도록했습니다. 이 작업을 쉽게 수행 할 수있는 방법이 있습니까? 배치는 다른 곳에 앉아있는 바람둥이에게 할 것입니다. 예 : 비트나이 인스턴스

application.properties에서 다양한 조합의 설정을 시도했지만 아무런 차이가 없습니다.

 server.servlet.context-path=/a
    server.servlet.path=/b
    spring.webservices.path=/c
    server.contextPath=/m

전쟁은 demo-0.0.01-SNAPSHOT.war라고 불리우며 webapps 디렉토리에 드롭하면 동일한 이름의 디렉토리가 생성되고 사이트는 /demo-0.0.01-SNAPSHOT 경로를 갖습니다. 나는 Spring Boot 시절에 쉽게 생각할 수 있었지만 나 같은 바보는 아직 해결하지 못했습니다. 아니면 사람들이 톰캣과 함께 임베디드 버전을 배포하고 요즘 실행합니까?

(BTW 난 root.xml뿐만 아니라 행운을 봤어 ... 내가 내 창 상자에 잘못하지 않는 한, 내 dev에 상자를 먼저 테스트, 배포 리눅스)

어떤 도움을 주시면 감사하겠습니다.

감사

해결법

  1. ==============================

    1.응용 프로그램의 컨텍스트 경로를 지정하는 Spring Boot 속성은 server.contextPath입니다. 그러나 WAR를 독립 실행 형 Tomcat 인스턴스에 배포한다는 사실은이를 사용하는 것을 허용하지 않습니다. 이 구성에서는 server.contextPath 및 컨테이너와 관련된 기타 등록 정보 (예 : server.port)를 사용할 수 없습니다. 이들은 임베디드 Tomcat 인스턴스와 함께 작동하도록 설계되었습니다.

    응용 프로그램의 컨텍스트 경로를 지정하는 Spring Boot 속성은 server.contextPath입니다. 그러나 WAR를 독립 실행 형 Tomcat 인스턴스에 배포한다는 사실은이를 사용하는 것을 허용하지 않습니다. 이 구성에서는 server.contextPath 및 컨테이너와 관련된 기타 등록 정보 (예 : server.port)를 사용할 수 없습니다. 이들은 임베디드 Tomcat 인스턴스와 함께 작동하도록 설계되었습니다.

    독립형 Tomcat 인스턴스는 Spring Boot가 제공하는 이러한 기능을 실제로 제어합니다. 따라서 독립형 Tomcat (server.xml 또는 ROOT.xml 방식)의 구성 파일에서 구성해야합니다.

  2. ==============================

    2.maven의 pom.xml에 finalName 설정을 추가하면 패키지 된 war 파일 이름이 만들어집니다. 예를 들어.

    maven의 pom.xml에 finalName 설정을 추가하면 패키지 된 war 파일 이름이 만들어집니다. 예를 들어.

    <build>
    ...
    <finalName>myapp</finalName>
    </build>
    

    패키지 파일 이름은 myapp.war입니다. Tomcat에 배포하면 컨텍스트가 파일 이름으로 설정됩니다.

  3. from https://stackoverflow.com/questions/43856043/changing-the-context-path-of-deployed-spring-boot-war-on-a-container-tomcat-se by cc-by-sa and MIT license