gatewayとspring-boot-starter-webの衝突問題の解決
4342 ワード
gatewayとspring-boot-starter-webの衝突
環境:
SprigCloudバージョン----Finchley.SR 2
Spring Bootバージョン----2.0.6.RELEASE
問題の説明:
zulゲートウェイをgatewayにアップグレードする時、gateway依存スタートネット関連子プロジェクトを導入してエラーを報告します。
導入の依存度:
Error starting Apple Contect.To display the conditions report re-run your appication with'debug'enabled.
2019-12-31:26:35.211 ERROR 1324-[main]o.s.b.d.ロギングFailure Analysis Report:
******************************************
APPLICATION FAILE D TO START
******************************************
Description:
Parameeter 0 of method modifyRequest Body GatewayFilterFactory in org.springframe ork.clody.gateway.com nfig.Gateway Autonfigration required a bean of type'org.sprigframe ork.sprigframe.phtfider.Covertder.Cont。
アクション:
Consder defining a bean of type'org.spring frame ework.http.com dec.ServerCodecCofigrer'in your configration.
Process finished with exit code 1
問題の分析:
コンソールの印刷ログを表示:
web依存のtomcat容器の起動に失敗し、nio異常を印刷したものと見られます。
zulとgatewayの違いを振り返ってみます。
Zuul:Servlet 2.5に構築され、3.xに対応しています。閉塞式のAPIを使用しています。長い接続はサポートされていません。例えば、websockets。
GatewayはSpring 5+に構築され、Spring Boot 2.x応答式の非閉塞式APIに基づいている。同時に、それはwebsocketsを支持して、Springフレームと緊密に集積します。
エラーの原因:起動時にはspring-book-starter-webの内蔵容器をデフォルトで使用していますが、ブロック以外はサポートされていません。
問題解決:
二つの解決方法があります。
1、web内蔵容器を除く
webfluxには全く新しい非つまり関数式Reactive Webフレームがあり、非同期的、非塞栓的、イベント駆動的なサービスを構築するために使用できます。
ゲートウェイバージョンの衝突問題
1、spring-cloudバージョン
Error starting Apple Contect.To display the conditions report re-run your appication with'debug'enabled.
2019-05-21 16:53:50.138 ERROR 15338-[main]o.s.b.d.ロギングFailure Analysis Report:
******************************************
APPLICATION FAILE D TO START
******************************************
Description:
Parameeter 0 of method modifyRequest Body GatewayFilterFactory in org.springframe ork.clody.gateway.com nfig.Gateway Autonfigration required a bean of type'org.sprigframe ork.sprigframe.phtfider.Covertder.Cont。
アクション:
Consder defining a bean of type'org.spring frame ework.http.com dec.ServerCodecCofigrer'in your configration.
4、原因
5、解決
削除できます
環境:
SprigCloudバージョン----Finchley.SR 2
Spring Bootバージョン----2.0.6.RELEASE
問題の説明:
zulゲートウェイをgatewayにアップグレードする時、gateway依存スタートネット関連子プロジェクトを導入してエラーを報告します。
導入の依存度:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
起動ゲートウェイエラーError starting Apple Contect.To display the conditions report re-run your appication with'debug'enabled.
2019-12-31:26:35.211 ERROR 1324-[main]o.s.b.d.ロギングFailure Analysis Report:
******************************************
APPLICATION FAILE D TO START
******************************************
Description:
Parameeter 0 of method modifyRequest Body GatewayFilterFactory in org.springframe ork.clody.gateway.com nfig.Gateway Autonfigration required a bean of type'org.sprigframe ork.sprigframe.phtfider.Covertder.Cont。
アクション:
Consder defining a bean of type'org.spring frame ework.http.com dec.ServerCodecCofigrer'in your configration.
Process finished with exit code 1
問題の分析:
コンソールの印刷ログを表示:
web依存のtomcat容器の起動に失敗し、nio異常を印刷したものと見られます。
zulとgatewayの違いを振り返ってみます。
Zuul:Servlet 2.5に構築され、3.xに対応しています。閉塞式のAPIを使用しています。長い接続はサポートされていません。例えば、websockets。
GatewayはSpring 5+に構築され、Spring Boot 2.x応答式の非閉塞式APIに基づいている。同時に、それはwebsocketsを支持して、Springフレームと緊密に集積します。
エラーの原因:起動時にはspring-book-starter-webの内蔵容器をデフォルトで使用していますが、ブロック以外はサポートされていません。
問題解決:
二つの解決方法があります。
1、web内蔵容器を除く
<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モジュールを使用するwebfluxには全く新しい非つまり関数式Reactive Webフレームがあり、非同期的、非塞栓的、イベント駆動的なサービスを構築するために使用できます。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
プロジェクトの起動に成功しましたゲートウェイバージョンの衝突問題
1、spring-cloudバージョン
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
2、sprring-bootバージョン
<version>2.0.3.RELEASE</version>
3、エラーの説明Error starting Apple Contect.To display the conditions report re-run your appication with'debug'enabled.
2019-05-21 16:53:50.138 ERROR 15338-[main]o.s.b.d.ロギングFailure Analysis Report:
******************************************
APPLICATION FAILE D TO START
******************************************
Description:
Parameeter 0 of method modifyRequest Body GatewayFilterFactory in org.springframe ork.clody.gateway.com nfig.Gateway Autonfigration required a bean of type'org.sprigframe ork.sprigframe.phtfider.Covertder.Cont。
アクション:
Consder defining a bean of type'org.spring frame ework.http.com dec.ServerCodecCofigrer'in your configration.
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>
以上は個人の経験ですので、参考にしていただければと思います。