问题标签 [micronaut-client]

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 回答
913 浏览

java - 在来自 Micronaut 休息端点的 JSON 中包含 null 和空属性

JSON 序列化的 Micronuat 默认配置JsonInclude.Include.NON_EMPTY不包含空值或 null 值。但是,我需要包含空值和空值,所以我到目前为止所做的 -

分页模型

当我添加@JsonInclude(ALWAYS)时,它不会在 JSON 响应中包含NULLEMPTY值,如下所示。

如果我添加下面的代码,它确实包含NULLEMPTYlastIdvendors

但是,它会引发如下异常

控制器

0 投票
0 回答
79 浏览

java - jackson:serializationInclusion: 总是导致 Consul 服务发现和 Micronaut 应用程序出错

注册杰克逊以将 NULL 和 EMPTY 值包含到导致错误的 micronaut 应用程序

例外

如果我删除jackson:serializationInclusion: ALWAYS服务发现工作正常,但我需要此设置包括 NULL 和 EMPTY 值

0 投票
0 回答
252 浏览

java - Micronaut 中带有错误消息的 HttpResponse.notFound

我有一个简单的 Rest API,它检查数据库中是否存在类别 ID,如下所示

在 else 语句中,我在 HTTP 正文中返回了一条消息“未找到类别 ID”,但是,我无法在客户端(例如邮递员)上看到该消息

在此处输入图像描述

我错过了什么?

更新 1

上述控制器方法已使用 micronaut 声明式客户端从 API 网关调用,如下所示

声明式 HTTP 客户端

0 投票
0 回答
483 浏览

java - Micronaut 声明式 http 客户端中的路由参数

我有一个使用声明性 Http 客户端的 API 网关,并尝试将路由参数传递给其他微服务应用程序,如下所示

@Client 上的路径path = "/sub-category"对于此 URL 是正确的http://localhost:8081/60236833af7a1d49478d2bef/sub-category

Api 网关控制器

ISubCategoryOperation

在其他微服务中实现

但是,在下面的 CURL

永远不会达到终点,我错过了什么?

HTTP 客户端日志

HTTP 请求应该是http://localhost:8081/60236833af7a1d49478d2bef /sub-category

0 投票
0 回答
66 浏览

java - 带有@Secured(SecurityRule.IS_ANONYMOUS) 注释的 API URL 上带有声明性 Http 客户端的 401

当我们添加 Micronaut 安全性时,所有 URL 都受到保护。在使用@Secured(SecurityRule.IS_ANONYMOUS)注释时仍然面临 401 异常

接口方法用表示@Secured(SecurityRule.IS_ANONYMOUS)但仍不能转到控制器方法

Http客户端

控制器

卷曲

Http 客户端日志

0 投票
0 回答
184 浏览

java - Java Micronaut - 在我多次点击端点后抛出“javax.net.ssl.SSLHandshakeException”

我有一个简单的 micronaut 应用程序。

我有两个单独的端点,其中执行的方法将使用客户端调用 API(我已经尝试了来自“java.net.http.HttpClient”和“io.micronaut.http.client.RxHttpClient”的 http 客户端,但是发生同样的问题)。

当您在启动应用程序后点击任何端点时,该函数将按预期执行,其中客户端调用外部 API 并将响应作为字符串检索。如果您尝试再次访问相同的端点,它将抛出:

“javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure。”

我认为这不是 API 服务器端的问题,原因如下:

  1. 当我使用两个单独的外部 API 访问两个单独的端点时会发生此问题
  2. 请求第一次通过没问题
  3. 我可以在邮递员中毫无错误地使用相同的 API - 只是当我与客户端调用它们时才会出现问题。

我的控制器:

我的客户端调用 API 的服务之一:

就像我说的,当我第一次点击端点时,响应从服务器返回,没有问题。

我已经尝试了以下文章并遵循了这些步骤,但没有任何改进。

https://www.baeldung.com/java-ssl-handshake-failures

如何解决 javax.net.ssl.SSLHandshakeException 错误?

有什么我想念的吗?

0 投票
2 回答
191 浏览

java - Micronaut 中基于环境的文件拾取

尝试根据环境使用不同的配置文件。例如

在开发环境中,我有以下文件

应用程序-dev.yml

对于另一个环境,我有以下配置

应用程序.yml

现在,当我在 intellj 中运行应用程序时,应用程序正在使用文件applicaiton.yml. 它应该获取application-dev.ymland 值url: 'https://localhost:5001/.well-known/openid-configuration/jwks',但它正在从 中获取值application.yml。但是,它应该只从 dev 文件中选择该值,并且应该从中选择所有其他值application.yml

根据 micronaut 文档https://docs.micronaut.io/latest/guide/index.html#environments我需要设置micronaut.environments

当我在本地机器上运行应用程序时,它不应该选择application-dev.yml. 如何设置环境

0 投票
1 回答
506 浏览

java - 如何将 io.micronaut.http.HttpRequest 转换为 CompletableFuture

我正在关注4 个低级客户端,我想调整示例以返回 CompletableFuture。我的最终目标是并行使用两个不同的端点。我是 Micronaut 的新手。我相信一种好的方法是创建两个 Micronaut 低级客户端,它们返回一个可完成的未来,然后使用 CompletableFuture.allOf().join() 加入两者

所以我将服务编码为

低级客户端为

例外是

有趣的是,声明式客户端并没有例外。

0 投票
1 回答
364 浏览

micronaut - 如何在 Micronaut 中获取反应流?

在 Spring Boot 中,对于 Webflux 项目,我们通过在 HTTP 请求中发送标头 - “Accept: application/stream+json”来请求数据流。

如果我们发送“Accept: application/json”,我们会得到一个有效的 Json。

然而,在 Micronaut 中,如果我发送“Accept: application/stream+json”,它会引发错误。

Micronaut 中的“Accept: application/stream+json”等价物是什么?

0 投票
0 回答
266 浏览

java - 使用 Micronaut 声明性 Http 客户端 MediaType.MULTIPART_FORM_DATA 发送图像不起作用

我正在使用 Micronaut 声明式客户端在其他微服务之间进行通信,如下所示

控制器方法

IProduct操作界面

API 网关控制器

当我提出请求时,请继续获取以下日志

卷曲

如果我Publisher<CompletedFileUpload>从控制器中删除,端点工作正常。