微服务启动报错:java.lang.IllegalStateException: Service id not legal hostname (/tope-pay-server/padAccoud)
问题描述:调用微服务: 微服务间部署再Nacos的同一个命名空间;在启动该服务时,报错信息如下:java.lang.IllegalStateException: Service id not legal hostname (/tope-pay-server/padAccount)at org.springframework.util.Assert.state(Assert.java:73) ~[s
·
问题描述:调用微服务: 微服务间部署再Nacos的同一个命名空间;
在启动该服务时,报错信息如下:
java.lang.IllegalStateException: Service id not legal hostname (/tope-pay-server/padAccount)
at org.springframework.util.Assert.state(Assert.java:73) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:103) ~[spring-cloud-openfeign-core-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:278) ~[spring-cloud-openfeign-core-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.cloud.openfeign.FeignClientsRegistrar.registerFeignClient(FeignClientsRegistrar.java:233) ~[spring-cloud-openfeign-core-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.cloud.openfeign.FeignClientsRegistrar.registerFeignClients(FeignClientsRegistrar.java:219) ~[spring-cloud-openfeign-core-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.cloud.openfeign.FeignClientsRegistrar.registerBeanDefinitions(FeignClientsRegistrar.java:144) ~[spring-cloud-openfeign-core-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86) ~[spring-context-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:385) ~[spring-context-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:1.8.0_151]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:384) ~[spring-context-5.2.4.RELEASE.jar:5.2.4.RELEASE]
报错信息明细:描述Service id 非法,不支持:排查返现 ,PayWebConst.PAY_SERVER 常量多加了一个了反斜杠"/",去掉后正常运行;
PayWebConst配置类如下:
/**
* 支付中心管理后台API常量定义
* @author yh
* @since 2021-03-15 15:00:00
* @version 1.0
*
*/
public class PayWebConst {
private PayWebConst() {
}
/** 支付系统服务名 */
public static final String PAY_SERVER = "/tope-pay-server";
}
引出的问题: 微服务Feign调用间的@FeignClient 调用的两种配置:
(1)方法路径的配置一;这种配置原则为当互访的微服务间不在同一个命名空间时,通过网关url地址方式,此时配置路径
/**
* 订单推送重发服务
*
* @author yangh
* @since 2021-04-19 10:13:00
* @version 1.0
*/
@FeignClient(name="feignPushOrderService", url = "${feign_api_url.internalGatewayUrl}" + PayWebConst.PAY_SERVER + "/pushOrder", fallbackFactory = FeignPushOrderServiceFallbackFactory.class)
public interface FeignPushOrderService {
}
(2) 当微服务在同一个命名空间注册时,可以使用下面的配置方式:
/**
* 订单推送重发服务
*
* @author yangh
* @since 2021-04-19 10:13:00
* @version 1.0
*/
@FeignClient(contextId="feignPushOrderService", value = PayWebConst.PAY_SERVER + "/pushOrder", fallbackFactory = FeignPushOrderServiceFallbackFactory.class)
public interface FeignPushOrderService {
/**
* 消息重发
* @param pushOrderId 推送记录ID
* @param from 权限标识
*/
@PostMapping("/reSendMsg")
PayResult<String> reSendMessage(@RequestParam("pushOrderId") String pushOrderId, @RequestHeader(SecurityConstants.FROM) String from);
}
更多推荐
已为社区贡献4条内容
所有评论(0)