gateway 와 spring-boot-starter-웹 충돌 문제 해결

gateway 와 spring-boot-starter-web 충돌
환경:
SpringCloud 버 전---Finchley.SR2
SpringBoot 버 전---2.0.6.RELEASE
질문 설명:
zuul 게 이 트 웨 이 를 gateway 로 업그레이드 할 때 gateway 를 도입 하여 게 이 트 웨 이 를 시작 하 는 게 이 트 웨 이 프로젝트 에 의존 하여 오 류 를 보고 합 니 다.
도입 의존:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
게 이 트 웨 이 시작 오류
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-12-31 10:26:35.211 ERROR 13124 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method modifyRequestBodyGatewayFilterFactory in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.
Process finished with exit code 1
문제 분석:
콘 솔 인쇄 로그 보기:

웹 이 의존 하 는 tomcat 용기 시작 에 실 패 했 고 nio 이상 을 출력 한 것 을 볼 수 있 습 니 다.
zuul 과 gateway 의 차 이 를 돌 이 켜 보 세 요.
Zuul:Servlet 2.5 에 구축 되 고 3.x 를 호 환 합 니 다.차단 식 API 를 사용 하고 긴 연결 을 지원 하지 않 습 니 다.예 를 들 어 websockets.
Gateway 는 Spring 5+에 구축 되 고 Spring Boot 2.x 응답 식,비 차단 식 API 를 기반 으로 합 니 다.또한,웹 sockets 를 지원 하 며,Spring 프레임 워 크 와 긴밀 하 게 통합 되 어 있 습 니 다.
오류 원인:시작 할 때 기본적으로 spring-boot-starter-web 내 장 된 용 기 를 사 용 했 습 니 다.비 차단 은 지원 되 지 않 습 니 다.
문제 해결:
두 가지 해결 방법 이 있다.
1.웹 내장 용기 제거

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- Maven             ,         war          spring-boot  -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
2,spring-webflux 모듈 사용
웹 flux 는 새로운 비 막힘 함수 식 Reactive 웹 프레임 워 크 를 가지 고 있 으 며,비동기 적 이 고 비 막힘 적 이 며 이벤트 구동 서 비 스 를 구축 할 수 있 습 니 다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
프로젝트 성공 시작

gateway 게 이 트 웨 이 버 전 충돌 문제
1.spring-cloud 버 전

<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
2,sprring-boot 버 전

<version>2.0.3.RELEASE</version>
3.오류 설명
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-05-21 16:53:50.138 ERROR 15308 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method modifyRequestBodyGatewayFilterFactory in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.
4.이유

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
...과

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-gateway</artifactId>
 </dependency>
버 전 충돌
5.해결
삭제 가능:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기