youngs
V2EX  ›  Java

@FeignClient 必须指定 url 才能找到服务,为什么?

  •  1
     
  •   youngs · Feb 22, 2018 · 7777 views
    This topic created in 3178 days ago, the information mentioned may be changed or developed.
    @FeignClient(name = "passport-service", url = "http://100.66.178.33:8089/passport")
    public interface PassportServiceApi {
    @RequestMapping(value = "/api/auths/token/{username}", method = RequestMethod.GET)
       AbstractResult getTokenByUsername(@PathVariable("username") String username);
    }
    
    上面的代码为什么必须制定 url 才能找到服务?如果不指定 url 就报 404 的问题,不指定 url 时跟踪代码发现最后生成的地址是 /api/auths/token/,并没有加上域名。
    12 replies  •  2018-02-24 10:03:52 +08:00
    CYKun
    CYKun
    Feb 22, 2018 via Android❤️1
    1
    不要把 ip 贴出来啊
    LeeSeoung
    LeeSeoung
    Feb 22, 2018
    2
    服务中心配了?
    jych1224
    jych1224
    Feb 22, 2018
    3
    不是一定要 URL,可以使用注册中心,使用服务名代替
    youngs
    youngs
    OP
    Feb 22, 2018
    4
    @CYKun 内网本机 IP 风险不大
    youngs
    youngs
    OP
    Feb 22, 2018
    5
    @jych1224 passport-service 就是使用服务名 单独使用报 404
    sghcel
    sghcel
    Feb 22, 2018
    6
    没有使用服务配置中心吧
    youngs
    youngs
    OP
    Feb 22, 2018
    7
    @sghcel 使用的 Eureka
    jameslan
    jameslan
    Feb 23, 2018 via Android
    8
    检查服务注册好了?
    HuHui
    HuHui
    Feb 23, 2018
    9
    @jameslan 如果写 url 的话,不需要去服务注册查找吧
    HuHui
    HuHui
    Feb 23, 2018
    10
    @jameslan 嗯,需要。看错题主的问题了。
    Narcissu5
    Narcissu5
    Feb 23, 2018
    11
    用 EurekaClient 或者 DiscoveryClient 的 getInstance 方法,看下能不能得到地址,可能是服务注册发现没有配置好。比如少了一些 Enable
    shawshi
    shawshi
    Feb 24, 2018
    12
    先判断注册中心有没有这两个服务?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:19 · PVG 15:19 · LAX 23:19 · JFK 02:19
    ♥ Do have faith in what you're doing.