Ошибка ввода-вывода Servlet.service при запросе GET для микросервисов

#java #spring #spring-boot #microservices

Вопрос:

Я пытаюсь кое-что протестировать с помощью микросервисов.

У меня есть 3 сервиса:

  • Служба пользователей (Bean)
  • Отдел обслуживания (Bean)
  • СервисрЕгистрия (EurekaServer)

когда мне нравится, чтобы сотрудники отдела соответствовали моему Пользователю, потому что моя табличка в службе пользователей не может подключиться к Отделу.

Пользовательский сервис Пользователя

 @Service
@Slf4j
public class UserService {

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private RestTemplate restTemplate;

    public User saveUser(User user) {
        log.info("Inside saveUser of UserService");
        return userRepository.save(user);
    }

    public ResponseTemplateVO getUserWithDepartment(Long userId) {
        log.info("Inside getUserWithDepartment of UserService");
        ResponseTemplateVO vo = new ResponseTemplateVO();
        User user = userRepository.findByUserId(userId);

        Department department =
                restTemplate.getForObject("http://DEPARTMENT-SERVICE/departments/"   user.getDepartmentId()
                        ,Department.class);

        vo.setUser(user);
        vo.setDepartment(department);

        return  vo;
    }
}
 

приложение.сервис пользователей yml

 server:
  port: 9092

spring:
  application:
    name: USER-SERVICE

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka/
      instance:
        hostname: localhost
 

Приложение UserService для пользователей

 package com.dailycodebuffer.user;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableEurekaClient
public class UserServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserServiceApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
 

Приложение UserService ServiceRegistry.yml

 server:
  port: 8761

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
 

Код ошибки

 2021-06-12 22:35:41.186 ERROR 40280 --- [nio-9092-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://DEPARTMENT-SERVICE/departments/2": Connection timed out: connect; nested exception is java.net.ConnectException: Connection timed out: connect] with root cause
 

Спасибо за помощь

Комментарии:

1. У вас возникли какие-либо проблемы из-за того, что вы используете исходный IP адрес Department Service ?

2. Так в почтальон, мой вам URL-адрес выглядит следующим образом: имя localhost:9092/пользователи/1 Если вы имеете в виду код, когда я бы вам отделении я также попробовал это так: отдел Управления = restTemplate.getForObject(» имя localhost:9002/департаменты » пользователь.getDepartmentId() ,Department.class); но это не работает также … Я могу поделиться с вами своим проектом, если это поможет

3. Насколько я понимаю, ваше department-service приложение не работает. Вы уверены, что запущено правильное приложение?

4. ДА… так что, как я думаю, служба департамента работает, потому что я могу публиковать в ней разные вещи. Но когда мне нравится получать пользователя, пара отделов в методе getUserWithDepartment, моя табличка Resttemplate не может подключиться к Отделу, я думаю.

5. github.com/rafu07/Microservices вот мой проект, если это поможет