Eureka и Feign MicroWebservice не запускаются

Мне удалось создать микросервис с одним сервером Eureka и двумя клиентскими серверами, один из серверов использует Feign и ленту для вызова другого сервиса, и этот сервис отключается сразу после запуска. я пытался найти возможную проблему, но я не мог найти. пожалуйста, помогите мне решить это.

класс контроллера

package com.booter.Company.controller;

import java.util.List;

import javax.websocket.server.PathParam;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import com.booter.Company.dto.CompanyDTO;
import com.booter.Company.dto.EmployeeDTO;

@RestController
@RequestMapping("/company")
public class CompanyController {

    private Logger log = LoggerFactory.getLogger(CompanyController.class);

    @Autowired
    private CompanyControllerProxy proxy;


    @RequestMapping(path= {"/{name}"}, method= {RequestMethod.GET})
    public CompanyDTO companyDetails(@PathParam("from") String name) {
        CompanyDTO dto = new CompanyDTO();
        dto.setName(name);
        dto.setAffiliatedTo("HCL Group Of Companies..");

        List<EmployeeDTO> employees = proxy.returnEmployeeList();
        log.info("{}",employees);
        dto.setEmployees(employees);

        return dto;

    }
}

имитировать прокси-класс для вызова другой службы

    package com.booter.Company.controller;

    import java.util.List;

    import org.springframework.cloud.netflix.ribbon.RibbonClient;
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.GetMapping;

    import com.booter.Company.dto.EmployeeDTO;

    @FeignClient(name="person-service")
    @RibbonClient(name="person-service")
    public interface CompanyControllerProxy {

        @GetMapping("/api/persons")
        public List<EmployeeDTO> returnEmployeeList();
    }

Класс начальной загрузки

    package com.booter.Company;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.cloud.openfeign.EnableFeignClients;

    @SpringBootApplication
    @EnableFeignClients("com.booter.Company.controller")
    @EnableDiscoveryClient
    public class CompanyApplication {

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

файл application.properties::

    spring.application.name = company-service
    server.port = 8200
    eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka

Журнал

   org.springframework.context.ApplicationContextException: Failed to start bean 'eurekaAutoServiceRegistration'; nested exception is java.lang.NullPointerException
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:184) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:52) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:157) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:121) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:885) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
at com.booter.Company.CompanyApplication.main(CompanyApplication.java:15) [classes/:na]

person Sud    schedule 19.06.2018    source источник
comment
добавление журнала ошибок:   -  person Sud    schedule 19.06.2018
comment
Привет, Суд. Пожалуйста, проверьте свой pom.xml и поделитесь здесь, какую версию spring-boot и spring-cloud вы используете.   -  person Yogendra Mishra    schedule 19.06.2018


Ответы (1)


Привет Йогендра, Проблема действительно была с pom.xml, я явно добавлял зависимость ленты в pom.xml, хотя он уже был частью клиента eureka, из-за этого у меня возникла эта проблема. после удаления ленточного клиента из pom.xml все в порядке.

person Sud    schedule 20.06.2018