问题标签 [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.
spring - 为什么我的集成测试抱怨 Spring Boot 中缺少 RestTemplate 接线?
为什么我的集成测试抱怨缺少RestTemplate
接线Spring Boot
?
我能做些什么来修复这个集成测试?
此外,这是集成测试还是单元测试?根据我的理解,这个测试正在调用一个模拟服务器,它是一个外部实体(在被测类之外),因此它是一个集成测试。我的理解正确吗?
pom.xml
src/main/java/RestTemplateConfig.java
src/main/java/AccountService.java
src/test/java/AccountServiceIntegrationTest.java
错误日志:
spring-boot - Java RestCall 默认绕过用户凭据
我找到了一种方法,默认情况下将当前用户凭据传递给我在 java 中的 rest 调用。我由特定用户启动应用程序,我不想在我的 rest 调用中输入密码信息(spring resttemplate 或类似于调用 rest 服务的东西)
在 c# UseDefaultCredentials =true 中,当 LDAP 身份验证处于活动状态时,我尝试找到类似的方法。
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
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 控制器时,响应标头是:
spring-boot - Spring-Boot 2.3.0.RELEASE 无法为 JUnit 5 测试自动装配 RestTemplate
我已经在@Configuration
课堂上配置了必要的 Bean,但无法将 RestTemplate 注入我的测试类进行测试。
测试类:
任何建议和见解表示赞赏
java - 来自 RestTemplate 响应的错误消息始终为“null”
我在这里失去理智了。我有两台服务器,一台是后台微服务,一台是调用它的主服务器。
在微服务中,我抛出一个异常,定义如下:
在我的主服务器中,我这样使用它:
从微服务内部我只是做
throw new CGTOkenException(msg);
出于某种原因,在我的主要服务记录器中,我得到了“503 null”的日志,就像这是抛出错误中的消息(来自行log.error( "CGTokenController error: " + ex.getMessage() );
)。
但是,如果我直接向我的微服务发送邮递员请求 - 我会得到完整的错误,里面包含正确的消息。
我究竟做错了什么?我想问题是我如何在我的主要服务中捕捉到它......但我就是找不到它是什么。如何传递正确的错误消息以传播到主要服务?
rest - Openshift - 在同一命名空间中调用另一个 API
我在同一个命名空间中有两个容器。服务 A 和服务 B。
就我而言,我想从 Service-A 与 Service-B 交谈。通过 RestTemplate,我正在拨打电话进行如下沟通。
它在我的较低区域运行良好,因为我只有一个用于 Service-B 的 POD。我的疑问是,如果我在生产中有更多的 PODS(比如说三个 POD)来处理负载。如果我使用服务 url 而不是路由器 url,PODS 之间会发生负载平衡吗?
java - Spring - 如何在微服务之间自动传递http标头
我有多个微服务
“MangerApp 微服务”得到一个Http-Request
我正在寻找一种方法来自动传输HTTP headers
调用中的一些内容,而我不想遍历每个地方并做 - 添加标头,我的HTTP
标头存储为线程本地地图。
因为我打电话给 other microservices
,RestTemplate
所以我有很多不同的调用,有些会get/post/put/etc...
改变它们,手动传递标题并不是那么有效。我正在寻找一种管理它的方法,而不是扩展RestTemplate Class
现在。
java - 实现 ClientHttpRequestInterceptor 时修改响应体
我面临以下问题:
我正在使用一个简单的方法调用另一个服务org.springframework.web.client.RestTemplate
调用它时,我需要拦截请求,修改请求体,让它继续流动。到目前为止,我没有遇到任何问题,因为org.springframework.http.client.ClientHttpRequestInterceptor
我可以对我的请求做任何我想做的事情(在将 RequestObjectA 发送到我正在调用的服务之前将其转换为 requestObjectB)。
问题:如何修改响应正文?
我看到打电话时ClientHttpResponse execute = clientHttpRequestExecution.execute(httpRequest, body)
我可以让身体做execute.getBody()
,所以我可以修改它,但我看不到以某种方式将它设置回来的方法。
有什么办法可以解决我修改后的身体ClientHttpResponse
?
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 在这种情况下使用起来太不方便了。
应该可以这样做: