Tomcat에 배포된 스프링 부트는 404개를 제공하지만 독립 실행형으로 작동합니다.
저는 REST API를 구축하기 위해 약 한 달 동안 Tomcat에 내장된 Spring Boot을 테스트하고 있습니다.모든 것이 잘 작동하고 있었습니다.이제 Tomcat 컨테이너에서 실행되는 몇 가지 다른 (봄이 아닌) 애플리케이션이 있는 별도의 개발 환경에 API를 배포하려고 합니다.
Maven 및 Spring Boot Docs를 사용하여 Spring Boot JAR 응용 프로그램을 WAR로 변환에서 지정한 내용을 변경했습니다.
배포가 잘 진행되고(로그는 정상이고 오류는 없음) Tomcat 관리를 보면 애플리케이션이 배포된 것을 확인할 수 있습니다.그러나 curl에서 http://localhost:8080/sophia/users에 액세스하려고 하면 404가 표시됩니다.
어떤 도움이든 감사합니다.
업데이트:
내 로그는 다음과 같습니다.
넷빈:
NetBeans: Apache Tomcat 8.0.17 프로파일 모드에서 배포: false debug 모드: false force redeploy: true
/home/bugz/workspace/pdcore/sophia 서버/target/sophia-server-1.0-SNAPshot에 인플레이스 구축
배포가 진행 중입니다...
배포?config=file%3A%2Ftmp%2Fcontext 1845402702541504208.xml&path=/sophia
확인 - 컨텍스트 경로/소피아에 애플리케이션 배포
시작이 진행 중입니다...
시작?path=/message
확인 - 컨텍스트 경로/소피아에서 응용 프로그램 시작
Tomcat:
정보 10:47:52:703 org.springframework.boot.context.embedded.서블릿 등록 빈 - 서블릿 매핑: 'dispatcher Servlet'에서 [/sophia/*]
정보 10:47:54:042 org.springframework.boot.스프링 작동 - 8.285초 만에 작동 시작(JVM 12087.301 실행)
22-Jan-2015 10:47:54.060 INFO [http-nio-8080-exec-99] org.apache.catalina.startup.HostConfig.deployDescriptor 구성 설명자 /home/bugz/workspace/server/apache-tomcat-8.0.17/conf/Catalina/localhost/sophia.xml의 배포가 12,091ms 만에 완료됨
그리고 catalina localhost의 sophia.xml에는 다음이 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" docBase="/home/bugz/workspace/pdcore/sophiaserver/target/sophia-server-1.0.0-SNAPSHOT" path="/sophia"/>
에 접속해 보았습니다.
첫 번째는 404를 반환하지만 내 CORS 필터 빈의 CORS 정보와 함께 반환합니다.CORS 정보가 없는 두 번째 리턴 404(애플리케이션이 시작되고 구성되었지만 컨트롤러에 액세스할 수 없음을 나타냄).
응용 프로그램을 실행할 때 호출 경로는 몇 가지 부분으로 구성됩니다.
로, 는 "URL"입니다./sophia
.
의 입니다.DispatcherServlet
당신의 경우라면/sohpia/*
.
는 세번내컨매다핑니입트 것입니다.DispatcherServlet
즉, 당신의 예에서/users
.
이 모 든 것 만 니 다 어 되 결 들 합 이/sophia/sophia/users
.
하는 것과 때입니다. 으로 WAR에 됩니다./
(뿌리).
당신은 그것을 고정할 수 있습니다./sophia
▁the로서server.context-path
에 시대에application.properties
그리고 지도를 그립니다.DispatcherServlet
/*
또는/
그러면 두 상황 모두에서 원하는 URL과 예상되는 URL이 제공됩니다.
check java - version은 java 8에서 전쟁을 수행하고 tomcat이 java 7에서 실행되면 작동하지 않는다는 것을 의미합니다.
SpringBoot Servlet을 확장해 보셨습니까?초기화자 및 구성 방법을 재정의하시겠습니까?여기에 명시된 바와 같이
jar 파일의 진입점은 앱을 컨테이너 내에서 war 파일로 실행하는 것과 비교했을 때 [Main Class]가 다릅니다.
이게 도움이 되길 바랍니다.
Java 버전 확인
pom.xml에 있는 버전은 서버에 설치된 버전과 동일해야 합니다.
openjdk 11은 나에게 잘 작동합니다.
언급URL : https://stackoverflow.com/questions/28089129/spring-boot-deployed-in-tomcat-gives-404-but-works-stand-alone
'programing' 카테고리의 다른 글
루비에서 기호를 해시 키로 사용하는 이유는 무엇입니까? (0) | 2023.07.21 |
---|---|
Oracle: 'order by' 절이 있는 행 번호 표시 (0) | 2023.07.21 |
@Spring Boot 2.6.0에서 실패한 테스트에서 자동 구성 사용(=... 제외) (0) | 2023.07.21 |
오라클 인덱스 열 값이 null인 경우는 언제입니까? (0) | 2023.07.21 |
mvn spring-boot에서 시작한 프로그램에 JVM 옵션을 추가하는 방법:run (0) | 2023.07.21 |