java - 为什么 Spring UriComponentsBuilder 会抛出 java.lang.IllegalArgumentException?
问题描述
为了让我的 Java SpringBoot 应用程序与常规 REST 端点集成,我有这个方法来准备 URI
import org.springframework.web.util.UriComponentsBuilder;
private URI prepareEndpointUrl(MyQuery q) {
return UriComponentsBuilder.fromHttpUrl(apiConfiguration.getLeadTimesPreCalcRestEndpointUrl())
.queryParam(PARAM1, q.getCountryFrom())
.queryParam(PARAM2, q.getZipCodeFrom())
.queryParam(PARAM3, q.getCountryTo())
.queryParam(PARAM4, q.getZipCodeTo())
.build().toUri();
}
URL 通过参数传递给 UriComponentsBuilder 作为第一个参数取决于我的应用程序正在运行的环境。
适用于所有较低的环境,但在 prod 中抛出 java.lang.IllegalArgumentException。
ERROR @ o.a.c.c.C.[.[.[.[dispatcherServlet] | Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: [ https://A_VALID_HOST/api/XX-YY.json] is not a valid HTTP URL] with root cause
java.lang.IllegalArgumentException: [ https://A_VALID_HOST/api/XX-YY.json] is not a valid HTTP URL
我用谷歌搜索,显然它可能与编码 url/参数有关,我没有这样做。显然这个环境有些不同,我不知道如何开始找到什么。
任何想法?
解决方案
正如上面斯蒂芬所标记的,问题是我的 URL 中的一个空格,在http之前。
显然,没有修剪;感谢大家。
推荐阅读
- python - python 多处理 __getnewargs__()
- angular - mat-form-field matInput、matSuffix 和反应形式的意外行为
- apache-spark - Kubernetes 运动以集群模式提交——包没有按预期工作
- c++ - 我的 C++ 程序有一个大问题
- python - 在 anaconda 中安装 OpenCV 未显示在 Windows 10 的 VS Code 中
- swift - 使用 NSArrayController 绑定在核心数据中保存 NSTableView 重新排序
- c# - 为什么 Azure 搜索索引器会停止在 Live 应用上工作
- ruby-on-rails - 模型之间的 Rails 关联
- reactjs - 分配本地存储以响应状态。反应钩子
- groovy - 这个 String 到 String 的 Map 如何作为 Groovy 中的 String 到 String 列表的 Map?