问题标签 [spring-resttemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1729 浏览

spring - 为什么我的集成测试抱怨 Spring Boot 中缺少 RestTemplate 接线?

为什么我的集成测试抱怨缺少RestTemplate接线Spring Boot

我能做些什么来修复这个集成测试?

此外,这是集成测试还是单元测试?根据我的理解,这个测试正在调用一个模拟服务器,它是一个外部实体(在被测类之外),因此它是一个集成测试。我的理解正确吗?

pom.xml

src/main/java/RestTemplateConfig.java

src/main/java/AccountService.java

src/test/java/AccountServiceIntegrationTest.java

错误日志:

0 投票
0 回答
130 浏览

spring-boot - Java RestCall 默认绕过用户凭据

我找到了一种方法,默认情况下将当前用户凭据传递给我在 java 中的 rest 调用。我由特定用户启动应用程序,我不想在我的 rest 调用中输入密码信息(spring resttemplate 或类似于调用 rest 服务的东西)

在 c# UseDefaultCredentials =true 中,当 LDAP 身份验证处于活动状态时,我尝试找到类似的方法。

0 投票
5 回答
1224 浏览

java - SpringBoot 将 RestTemplateBuilder 从 1.5.14 升级到 2.1.5

我的这段代码在使用的项目上运行良好RestTemplateBuilder 1.5.14

更新到 RestTemplateBuilder 2.1.5我有这段代码后:

但是在运行代码时,我有一个 InvocationTargetException / NullPointerException在删除行时消失了.requestFactory(new MyHttpComponentFactoryBuilder().build().getClass()),但调试new MyHttpComponentFactoryBuilder().build().getClass()不为空

我还尝试了提出的解决方案:

但我也有一个InvocationTargetException / NullPointerException

0 投票
0 回答
183 浏览

java - 为 POST 调用接收 HttpClientErrorException 时缺少 ResponseBodyAsString

我正在尝试在 RestClient 调用中发送带有 Http 状态代码的自定义错误消息

微服务1代码:

微服务 2 代码:

从微服务 1 GET 调用响应:响应状态码 - 401

来自微服务 1 POST 调用响应:响应状态码 - 401

对于 GET 方法,它按预期工作,但对于微服务到微服务,POST/PUT/DELETE 不起作用。

当我使用 POST 方法从邮递员直接点击微服务 2 时,它可以正常工作,但是当我使用 POST 方法从微服务 1 中点击微服务 2 时,它不起作用。

当我从下面的微服务 1 中点击微服务 2 控制器时,响应标头是:

当我从下面的邮递员中点击微服务 2 控制器时,响应标头是:

在此处输入图像描述

0 投票
1 回答
808 浏览

spring-boot - Spring-Boot 2.3.0.RELEASE 无法为 JUnit 5 测试自动装配 RestTemplate

我已经在@Configuration课堂上配置了必要的 Bean,但无法将 RestTemplate 注入我的测试类进行测试。

测试类:

任何建议和见解表示赞赏

0 投票
1 回答
165 浏览

java - 来自 RestTemplate 响应的错误消息始终为“null”

我在这里失去理智了。我有两台服务器,一台是后台微服务,一台是调用它的主服务器。

在微服务中,我抛出一个异常,定义如下:

在我的主服务器中,我这样使用它:

从微服务内部我只是做 throw new CGTOkenException(msg);

出于某种原因,在我的主要服务记录器中,我得到了“503 null”的日志,就像这是抛出错误中的消息(来自行log.error( "CGTokenController error: " + ex.getMessage() );)。

但是,如果我直接向我的微服务发送邮递员请求 - 我会得到完整的错误,里面包含正确的消息。

我究竟做错了什么?我想问题是我如何在我的主要服务中捕捉到它......但我就是找不到它是什么。如何传递正确的错误消息以传播到主要服务?

0 投票
1 回答
246 浏览

rest - Openshift - 在同一命名空间中调用另一个 API

我在同一个命名空间中有两个容器。服务 A 和服务 B。

就我而言,我想从 Service-A 与 Service-B 交谈。通过 RestTemplate,我正在拨打电话进行如下沟通。

它在我的较低区域运行良好,因为我只有一个用于 Service-B 的 POD。我的疑问是,如果我在生产中有更多的 PODS(比如说三个 POD)来处理负载。如果我使用服务 url 而不是路由器 url,PODS 之间会发生负载平衡吗?

0 投票
1 回答
1816 浏览

java - Spring - 如何在微服务之间自动传递http标头

我有多个微服务

“MangerApp 微服务”得到一个Http-Request 我正在寻找一种方法来自动传输HTTP headers 调用中的一些内容,而我不想遍历每个地方并做 - 添加标头,我的HTTP标头存储为线程本地地图

因为我打电话给 other microservicesRestTemplate所以我有很多不同的调用,有些会get/post/put/etc... 改变它们,手动传递标题并不是那么有效。我正在寻找一种管理它的方法,而不是扩展RestTemplate Class现在。

0 投票
4 回答
1354 浏览

java - 实现 ClientHttpRequestInterceptor 时修改响应体

我面临以下问题:

我正在使用一个简单的方法调用另一个服务org.springframework.web.client.RestTemplate

调用它时,我需要拦截请求,修改请求体,让它继续流动。到目前为止,我没有遇到任何问题,因为org.springframework.http.client.ClientHttpRequestInterceptor我可以对我的请求做任何我想做的事情(在将 RequestObjectA 发送到我正在调用的服务之前将其转换为 requestObjectB)。

问题:如何修改响应正文?

我看到打电话时ClientHttpResponse execute = clientHttpRequestExecution.execute(httpRequest, body)我可以让身体做execute.getBody(),所以我可以修改它,但我看不到以某种方式将它设置回来的方法。

有什么办法可以解决我修改后的身体ClientHttpResponse

0 投票
0 回答
177 浏览

spring-boot - Spring Traverson 遵循相对路径忽略 baseUri

我正在尝试在我的 Spring Boot 应用程序中使用 Traverson 来使用外部 HAL-api。这样做时,我在第一跳时遇到了异常org.apache.http.ProtocolException: Target host is not specified,即 Traverson 调用我的 baseUri 没有问题并且设置了目标主机,但似乎在第一跳时“忘记了”主机。

这是调用它的代码:

这是 Traverson baseUri ( https://my.host.com/dms ) 的返回:

执行此代码时,Traverson 获取我正在搜索的链接(“/dms/r”),但是当尝试跟踪它时,它执行对“/dms/r”而不是“https://my.host”的调用.com/dms/r”。

我错过了什么吗?

非常感谢您的每一点帮助!

编辑1: 可以使用以下代码实现我的目标。但是如果我不得不求助于这个选项,我会直接使用 restTemplate 而不发现 url,因为 Traverson 在这种情况下使用起来太不方便了。

应该可以这样做: