spring-5.3.23-resttemplate-uri-pattern-string-port-servicecomb

问题描述 投票:0回答:0

我使用resttemplate访问servicecomb服务(org.apache.servicecomb.provider.springmvc.reference.CseRestTemplate),uri示例: cse://xx:yy/aaa/bbb/ccc spring 5.2.22.RELEASE 将解析

org.springframework.web.util.UriComponentsBuilder#fromUriString
中的空端口,使用正则表达式
org.springframework.web.util.UriComponentsBuilder#PORT_PATTERN = "(\\d*(?:\\{[^/]+?\\})?)"
因为正则表达式将不匹配任何数字端口。

当我升级到 spring 5.3.23 时,spring 将正则表达式模式更改为“(\{[^}]+\}?|[^/?#]*)”,这会将 yy 解析为端口,然后抛出

org.springframework.web.util.HierarchicalUriComponents#getPort

中的数字格式异常

我怎么解决这个问题?

我将 spring 版本转回 5.2.22.RELEASE 以避免这个问题。 spring升级到5.3.x后如何使用resttemplate正常访问servicecomb服务?

java spring spring-mvc resttemplate
© www.soinside.com 2019 - 2024. All rights reserved.