|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Подскажите как правильно настроить работу Feign и Spring Pageable Вот мои настройки Feign Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Вот CaseFeignClient для работы Код: java 1. 2. 3. 4. 5.
В результате ошибка Код: java 1. 2.
Опцию включил, как сказано тут https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/#spring-data-support ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2021, 17:48 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Помогло это https://github.com/spring-cloud/spring-cloud-openfeign/issues/205#issuecomment-525308100 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2021, 18:26 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
А зачем нужен этот Feign вкратце? Перевод говорит что это - "симулировать и притворятся"... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2021, 18:40 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
C Get разобрался, теперь ошибка с Post http://localhost:8081/cpt/api/cases/base/search?page=0&size=10&sort=caseOpenDttm,DESC Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Получаю ошибку Код: java 1.
Если написать так (без @SpringQueryMap ) Код: java 1.
То даже не собирается Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2021, 18:46 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
mayton А зачем нужен этот Feign вкратце? Перевод говорит что это - "симулировать и притворятся"... Не совсем понял ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2021, 20:09 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
mayton А зачем нужен этот Feign вкратце? Перевод говорит что это - "симулировать и притворятся"... В runtime "генерирует" клиент для REST сервиса по интерфейсу + аннотациям В Spring Cloud заодно интегрирован с автообнаружением сервисов, позволяет в качестве аннотаций клиента использовать аннотации Spring MVC. Не помню, интегрирован ли с Circuit Breaker. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:02 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=-, А можно stack trace ошибки? А то у меня сомнения, что проблема на клиентской стороне. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:05 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Lelouch mayton А зачем нужен этот Feign вкратце? Перевод говорит что это - "симулировать и притворятся"... В runtime "генерирует" клиент для REST сервиса по интерфейсу + аннотациям В Spring Cloud заодно интегрирован с автообнаружением сервисов, позволяет в качестве аннотаций клиента использовать аннотации Spring MVC. Не помню, интегрирован ли с Circuit Breaker. Хм... Понятно. А как работает авто-обнаружение. Это что-то типа WS-discovery? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:07 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
mayton Lelouch пропущено... В runtime "генерирует" клиент для REST сервиса по интерфейсу + аннотациям В Spring Cloud заодно интегрирован с автообнаружением сервисов, позволяет в качестве аннотаций клиента использовать аннотации Spring MVC. Не помню, интегрирован ли с Circuit Breaker. Хм... Понятно. А как работает авто-обнаружение. Это что-то типа WS-discovery? Нет, это часть spring cloud. Само discovery зависит от инфраструктуры, есть разные реализации для Eureka, Zookeeper, Kubernetes, etc. Конкретно для feign переопределяется реализация Http клиента (если я правильно помню) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:20 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Lelouch -=Koba=-, А можно stack trace ошибки? А то у меня сомнения, что проблема на клиентской стороне. Так выглядит метод (без @SpringQueryMap не собирается, говорит два body) Код: java 1. 2.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:36 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Исходный запрос Код: java 1.
То есть вместо такого запроса Код: java 1.
Feign отсылает Код: java 1. 2. 3.
Это мой контроллер Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:42 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=- Lelouch -=Koba=-, А можно stack trace ошибки? А то у меня сомнения, что проблема на клиентской стороне. Так выглядит метод (без @SpringQueryMap не собирается, говорит два body) Код: java 1. 2.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Я конечно не уверен, но мне кажется что у вас проблема с применением сортировок дальше по стеку вызовов на сервере. По тексту это ошибка PropertyReferenceException из пакета org.springframework.data.mapping Нет ли Stack trace с сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 11:49 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Lelouch, Вот так проходит =( Код: java 1.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 12:13 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Похоже у меня проблема из разряда https://github.com/spring-cloud/spring-cloud-openfeign/issues/146 Feign версия 11.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 12:27 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=- Похоже у меня проблема из разряда https://github.com/spring-cloud/spring-cloud-openfeign/issues/146 Feign версия 11.1 Да, судя по url генерируется не занятая а ': ' ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 13:11 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Lelouch, Только опять нюанс Тут один параметр в методе - Pageable https://github.com/spring-cloud/spring-cloud-openfeign/issues/146#issuecomment-685290144 А у меня два, фильтр и Pageable =( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 13:12 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=-, Какая у вас версия spring-cloud-openfeign ? В 3.0.1 визуально проблема исправлена ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 13:12 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=-, Как вариант, если версия Spring старая - можете 1) Скопировать https://github.com/spring-cloud/spring-cloud-openfeign/blob/40a2ed5030d83dc7f076d8f533dea0c28e71e723/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/PageableSpringEncoder.java 2) Зарегистрировать этот Encoder в OpenFeign ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 13:23 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Lelouch -=Koba=-, Как вариант, если версия Spring старая - можете 1) Скопировать https://github.com/spring-cloud/spring-cloud-openfeign/blob/40a2ed5030d83dc7f076d8f533dea0c28e71e723/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/PageableSpringEncoder.java 2) Зарегистрировать этот Encoder в OpenFeign Поправка - не зарегистрировать, а обернуть SpringEncoder в него (см FeignClientsConfiguration) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 13:33 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Lelouch -=Koba=-, Какая у вас версия spring-cloud-openfeign ? В 3.0.1 визуально проблема исправлена 2.2.6 RELEASE Спасибо сейчас попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 13:53 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=- Lelouch -=Koba=-, Какая у вас версия spring-cloud-openfeign ? В 3.0.1 визуально проблема исправлена 2.2.6 RELEASE Спасибо сейчас попробую Странно, в 2.2.6 этот фикс уже есть (немного некорректный, но все-же в url должна быть запятая, а не :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 14:14 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=- Lelouch -=Koba=-, Какая у вас версия spring-cloud-openfeign ? В 3.0.1 визуально проблема исправлена 2.2.6 RELEASE Спасибо сейчас попробую Нет, я был не прав, проблема не в этом. Проблема именно в @SpringQueryMap: Наличие этой аннотации приводит к следующим шагам преобразования: 1) Pageable преобразуется в Map<String, Object> 2) Map<String, Object> преобразуется в строку запроса За это отвечает реализация QueryMapEncoder Если вам нужно передавать pageable в URI, при этом передавая еще и body , то придется делать следующее: 1) Реализовать FeignBuilderCustomizer 2) В рамках этого Customizer необходимо заменить QueryMapEncoder на свою реализацию (метод builder.queryMapEncoder) 3) Примерная реализация: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 14:37 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
Помогло обновление spring-cloud-version до версии 3.0.2 Благодарю ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 18:20 |
|
Feign & Pageable
|
|||
---|---|---|---|
#18+
-=Koba=-, https://github.com/spring-cloud/spring-cloud-openfeign/commit/2a23b6d304bcdb1428e8f390bdb6346c549cb952 - Кстати, вот фикс, примерно совпадает с тем, что я выше написал для старых версий) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2021, 20:04 |
|
|
start [/forum/topic.php?fid=59&msg=40060339&tid=2120486]: |
0ms |
get settings: |
23ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
432ms |
get tp. blocked users: |
2ms |
others: | 304ms |
total: | 850ms |
0 / 0 |