Я обновляю версию весенней загрузки с 2.1.6.RELEASE до 2.3.0.RELEASE по некоторым причинам.
К сожалению, в процессе я столкнулся с некоторыми проблемами ... одна из них здесь . Речь идет о функции имитации, в частности имитации клиента.
Самое странное, что когда я использовал Spring boot 2.1.6, все работает нормально и макетирование работает хорошо. Но после обновления версии я получил сообщение об ошибке:
java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client
, что означает, что процесс имитации не работал, так как имитирующий клиент на самом деле пытался найти сервер. Есть ли какие-либо изменения, которые я пропустил?
На всякий случай, поскольку я обнаружил, что модуль spring-boot-starter-test обновил версию mockito зависимости с 2.24.2 (не уверен) до 3.3.2 (тоже не уверен), я попытался понизить версию версия mockito к источнику, и она ничего не изменила. Так что я думаю, что проблема в пружине.
Могу я что-нибудь сделать, чтобы решить эту проблему? спасибо.
У меня есть эти коды:
Test. java
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = Application.class)
@AutoConfigureMockMvc
public class Test{
@MockBean private FeignProxy feignProxy;
@Autowired private ApplicationService applicationService;
@Test
@Transactional
public void doTest(){
when(feignProxy.doProxy()).thenReturn(response);
assertDoesNotThrow(() -> {
applicationService.doService(); // exception occurs
}
}
ApplicationServiceImpl. java
@Component
public class ApplicationServiceImpl implements ApplicationService{
@Autowired private FeignProxy feignProxy;
public void doService(){
...
feignProxy.doProxy();
...
}
}
и Application. java имеет следующие аннотации:
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
...
вкратце: тот же код, тот же процесс, другая версия, ошибка.