1. Pemilahan Masalah:
Pengecualian: org.springframework.web.httpRequestMethodnotsupportedException: Metode permintaan 'Posting' tidak didukung
Jelas bahwa ketika peti akhirnya mengeksekusi permintaan HTTP, metode ini dianggap sebagai posting, tetapi klien patahan mendefinisikan requestMethod.get atau @getMapping, yang menyebabkan kesalahan.
Jadi mengapa berpura -pura berpikir bahwa metode ini adalah posting?
Pelacakan Kode Sumber:
1. Mari kita lihat anotasi FignClient sebagai entri:
2. Menurut gaya Cloud Spring yang konsisten, kami membuka kelas FeignAutoconfiguration untuk melihat logika konfigurasi:
Lihatlah anotasi di kotak merah gambar di atas: kelas ini dipicu ketika tidak ada iloadbalancer. Proyek kami telah mengaktifkan pita, jadi harus ada. Lihatlah komentar lagi: Load Balancing Ribbon Klien perlu menggunakan fignribbonClientAutoconfiguration untuk mengonfigurasi kelas ini. pergi ~
As shown in the above picture, look at the red box comments: In the order of importing from top to bottom: HttpClientFeignLoadBalancedConfiguration>OkHttpFeignLoadBalancedConfiguration>DefaultFeignLoadBalancedConfiguration, the corresponding underlying http tool: httppclient>okhttp>HttpURLConnection
Menurut definisi protokol HTTP, @requestbody+ requestMethod.get didukung. Jadi itu tergantung pada berbagai implementasi toolkit. Memeriksa kode sumber, saya menemukan bahwa OKHTTP dan HTTPURLConnection tidak didukung (dilaporkan kesalahan), hanya HTTPPPLIEN yang mendukungnya. (HttpurlConnection default akan melaporkan kesalahan)
Kami tahu bahwa hanya HTTPClient yang mendukung @requestbody+requestMethod.get, jadi kami harus memenuhi persyaratan dan pergi ke httpClientFeignLoadBalAndConfiguration. Lihat kode sumbernya:
Dapat dilihat bahwa kelas ApacheHTTPClient ada di bawah Classpath. Mari kita tambahkan pom:
<dependency> <GroupId> io.github.openfeign </groupid> <ArTifactId> fegn-httpclient </stifactid> </dependency>
Akhirnya, paket Fishign-HTTPClient-9.5.0.jar dimuat, dan dibuka dan menemukan bahwa ada ApacheHTTPClient.class. Klik dan lihat bahwa itu sebenarnya httppclient.
Oleh karena itu, POM memperkenalkan pisau-httpclient-》 ApacheHttpClient.class-》 Pergi ke httpClientFeignLoadBalAndConfiguration-》 Saat meminta, httpclient-》 dukungan @requestbody+ requestMethod.get
2. Solusi:
Diperkenalkan dalam pom
<dependency> <GroupId> io.github.openfeign </groupid> <ArTifactId> fegn-httpclient </stifactid> </dependency>
Setelah Maven diperbarui, periksa apakah paket Fishign-httpclient-9.5.0.jar ada dalam proyek.
Meringkaskan
Di atas adalah solusi untuk awan pegas berpura -pura bahwa editor diperkenalkan kepada Anda. Solusi untuk kesalahan Spring Cloud Ries tidak mendukung @requestbody+ requestMethod.get. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!