问题标签 [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.
micronaut - 如何使用鉴别器和声明式客户端路由请求?
用例
我正在尝试使用 micronaut 声明式客户端调用服务。该服务实际上是许多相同的服务,但针对我们系统中的每个原则托管在不同的主机上。例如
tenetA.example.com/api
tenetB.example.com/api
从 micronaut,我想使用请求标头X-tenetID
,并基于它调用正确的服务。听起来很简单吧?
第一次尝试:使用过滤器
我尝试的第一件事是在客户端上使用过滤器
我已经确认我的过滤器被调用,请求 uri 被设置,但请求 uri 没有在链的下游得到尊重。覆盖订单似乎也没有任何效果。它仍在向replaceme.example.com
. 我在这里做错了吗?
我发现一些论坛帖子说这种方法可能行不通,因为选择的主机是在流程的早期完成的,以说明 LoadBalancer 机制。这让我进行了第二次尝试:
第二次尝试:使用客户端 LoadBalancer
由于似乎无法在过滤器中更改 url 的主机,我尝试编写自己的DiscoveryClientLoadBalancerFactory
不过我被困在这里,因为我不知道如何告诉声明式客户端使用我的 tenetID 作为鉴别器。我只见过@Inject
注释创建 a DefaultHttpClient
,它只会调用loadBalancer.select(getLoadBalancerDiscriminator())
并getLoadBalancerDiscriminator()
总是返回null
。有没有办法可以根据请求标头设置鉴别器?
什么不可行:应用程序配置
一些使用 bitbucket 的示例文档表明 url 来自配置。我们的原则来来去去,每项服务都必须使用存储在云库中的自己的凭据进行身份验证。因此,在 application.conf 或类似文件中存储某种映射在这里并不是很有用,因为我们不希望每次添加新原则或轮换密钥时都必须重新启动。
帮助
在这两种方法之间,LoadBalancer 路由似乎更骇人听闻,因为我正在做的是请求路由或 url 重写,而不是负载平衡。这些方法之一应该有效吗?有没有更好的方法来做我想做的事?
java - 未指定所需的正文 [文件] Micronaut 分段上传
尝试使用声明性 HTTP 客户端上传文件,如下所示
Http客户端
对客户端的依赖注入
产品控制器
卷曲
我面临的一个例外
java - 使用声明式客户端 Micronaut 将多个文件上传到 MultipartBody
尝试使用 Micronaut 声明式客户端上传多个文件。
Http客户端
将多个文件添加到多部分
产品控制器
例外
micronaut - Micronaut 的 HttpClient:连接池、connection-pool-idle-timeout 和 connect-ttl:它们如何协同工作?
我对以下设置有疑问:
- micronaut.http.client.connect-ttl
- micronaut.http.client.connection-pool-idle-timeout
我想了解:
- 以下设置的目的是什么?
- 它们有何不同?
- 他们如何一起工作?
- 如果池被禁用(micronaut.http.client.pool.enabled = false),这些设置是否有用?
我不清楚 micronaut 文档。
micronaut - Micronaut 的 HttpClient:事件循环组、线程数、线程工厂:它们如何协同工作?
我来自 Spring Framework,现在我在一个 micronaut 项目中。我对 netty 及其概念知之甚少,因此我怀疑 micronaut 文档对我来说并不清楚。
我对以下设置有疑问:
- micronaut.http.client.event-loop-group
- micronaut.http.client.num-of-threads
- micronaut.http.client.thread-factory
我想了解:
考虑到可以定义 event-loop-group 的线程数,配置 event-loop-group 和 ALSO client.num-of-threads / client.thread-factory 是否有意义?
如果它们可以一起使用:它们如何一起工作?
如果它们不能一起使用:它们有何不同?每个最合适的用例是什么?
micronaut - Micronaut - 创建、获取和销毁 ApplicationContext bean
我需要动态创建和销毁HttpClient
对象,以与客户在我的 Micronaut 应用程序中注册/注销自己相对应。作为其中的一部分,我想将它们作为 bean 添加到应用程序上下文中,以便它们HttpFilter
在项目中也自动使用自定义 s。
ApplicationContext
我认为使用带有名称的 bean 方法来管理这些 beanQualifier
以跟踪它们会相当简单,但是这些 API 的行为方式似乎让我感到莫名其妙:
applicationContext.createBean(HttpClient.class, Qualifiers.byName("myLabel"), myUrl)
失败:
为什么 bean 是否存在很重要?我正在努力创造它!
applicationContext.findBean(HttpClient.class)
失败:
为什么要尝试创建它?我只是想找到它!
(注意。applicationContext.getBean(HttpClient.class, Qualifiers.byName("myLabel"))
可能在这里工作,但因为我无法解决第一点,我无法验证这一点)
applicationContext.destroyBean(HttpClient.class)
不允许Qualifier
在方法中指定 a ,这意味着我不能使用它从上下文中删除 bean。它还在没有限定符 (applicationContext.createBean(HttpClient.class, myUrl)
) 的 bean 创建后返回 null ,这表明它无论如何都找不到创建的 bean ......
我假设我在这里使用了错误的 API,但正确的 API 是什么?
总而言之,我非常困惑 - 欢迎任何有关正确使用这些 API 的帮助。
java - 如何在 Micronaut 框架中编写此代码
我已经使用了 OKHtttpClient 包。需要在 Post 方法中提交数据,并且 mediatype 应该是 x-www-form-urlencoded
'''
'''
我努力了 :
micronaut - HttpClient 在我的类中抛出空指针异常,它扩展了 MicronautRequestHandler
我在下面提到的代码中得到NullPointerException
了:httpClient
java - Micronaut 无法加载和使用我的“TypeConverter”实现
我有一个控制器方法,它接受一个 POJO。
交易类型很简单enum
,但我想使用自定义转换从入站值到交易类型。
我写了一个转换器:
Micronaut 不是使用类型转换器来转换入站值吗?
是否需要一些特殊的注册过程才能让 Micronaut 知道它应该使用转换器?
如果我添加一个构造函数,TransactionTypeConverter
我可以看到该类根本不是由 Micronaut 实际创建的。
如果我将它作为常规依赖项添加到控制器,它会被加载(这并不奇怪),但仍未使用。我缺少一个步骤吗?