2

현재 Java 빌드 팩 (Tomcat)에 동적 Java 응용 프로그램 (서블릿 기반)을 Cloud Foundry으로 배포하고 있습니다.Cloud Foundry에서 컨텍스트 경로 라우팅 문제가 발생했습니다.

우리는 컨텍스트 경로 기반 라우팅을 사용하고 있습니다. Spring 응용 프로그램의 경우 응용 프로그램 등록 정보 파일 또는 Dserver.contextPath에서 컨텍스트 경로를 설정 중이며 둘 다 정상적으로 작동합니다.

Cloud Foundry Tomcat 컨테이너에서 작동하도록 비 스프링 Java 응용 프로그램에 대한 컨텍스트 경로를 어떻게 설정합니까? 아래 옵션을 시도했지만 경로 연결 중 404 오류가 발생했습니다.

cf set-env my-application JBP_CONFIG_TOMCAT '{tomcat: { context_path: /first-segment/second-segment }}' 
+2

환경 변수를 설정 한 후에'cf restage my-application'을 했습니까? 이 환경 변수는 응용 프로그램 재시작이 필요하며 재시작만으로는 충분하지 않습니다. – dkoper

답변

3

어떻게 클라우드 파운드리 Tomcat 컨테이너에서 작동하는 비 스프링 자바 응용 프로그램 컨텍스트 경로를 설정하는 방법?

사용해야하는 구문입니다. 나는 cf set-env JBP_CONFIG_TOMCAT '{tomcat: {context_path: "/spring-music"}}'을 테스트했으며 정상적으로 작동했습니다. 나에게도 도움이 된 cf set-env JBP_CONFIG_TOMCAT '[tomcat: {context_path: "/spring-music"}]'을 사용할 수도 있습니다. manifest.yml를 사용

예 :

--- 
applications: 
- name: spring-music 
    memory: 512M 
    host: spring-music-example 
    path: build/libs/spring-music.war 
    env: 
    JBP_CONFIG_TOMCAT: '[tomcat: {context_path: "/spring-music"}]' 

이 대신 기본 http://spring-music-example.example.com/의, 봄 음악 http://spring-music-example.example.com/spring-music에서 사용할 수있는 결과. 이것은 또한 경로 기반 라우팅과 함께 매우 잘 작동

(즉 cf push --route-path하거나 또는 cf create-route --path

가 작동하지 않는 경우. 앱을 restaged 또는를 통해 변경 사항을 적용한

  1. 확인 cf push
  2. Java 빌드 팩의 최신 버전을 사용하고 있는지 확인하십시오. 3.14에서 테스트 한 결과 작동했습니다.
  3. Java 빌드 팩의버전을 확인하십시오.파일 (즉, this). 이 파일은 구성 옵션의 계층을 정의하며 간혹 변경됩니다. 설정중인 파일이 빌드 팩 버전의 해당 파일과 일치하는지 확인하십시오.

희망 하시겠습니까?