问题标签 [smallrye]
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.
vert.x - 如果在截止日期之前没有生产任何项目,则使用占位符项目完成 Uni,不取消处理管道
我有一个需要很长时间才能完成的异步操作管道,如果管道在截止日期之前没有生成项目,我想让 Uni 继续使用占位符项目,如下所示:
但是当使用这种方法时,处理流水线被取消并且操作链被中断。是否可以在截止日期到期而不取消处理管道的情况下使用占位符项目完成 Uni?即使错过了最后期限,我也希望管道能够持续到最后。如果有帮助,可以使用 Vert.x。
谢谢
编辑:
这是我迄今为止尝试过的:
当处理在截止日期之前完成时,这可以正常工作,但是如果截止日期到期并且计时器被触发,它会javax.enterprise.context.ContextNotActiveException
在发出占位符项目时崩溃,并且应用程序似乎陷入某种死锁。
编辑 2
原来我的大部分问题实际上是由于不正确使用 Hibernate 引起的。在对 Hibernate 事务的管理方式进行了一些重构之后,所有随机死锁和其他问题都消失了。
这似乎是原始问题最优雅的解决方案,即如何在不中断处理的情况下使用虚拟项目进行响应,除非它在截止日期之前完成:
java - 如何使用 quarkus 在父 maven 项目中创建自定义自动配置
请求描述:
我想在父maven项目中集成一些属性(例如:quarkus.log.console.format、quarkus.smallrye-metrics.path),新项目只需扩展父maven项目即可自动配置该属性并制作确保所有项目都获得相同的属性。
简单关系:
Auto-Configuration父项目(有属性:quarkus.smallrye-metrics.path=/myMetrics)
|————A子Proejct(非属性)
|————B子Proejct(非属性)
使用http://${A project domain}/myMetrics
并 http://${B project domain}/myMetrics
可以获得指标。
试过:
- 添加
quarkus.smallrye-metrics.path=/myMetrics
父项目/application.properties - 阅读源代码,但我找不到任何方法。
环境信息:
- java版本:1.8
- 夸库斯版本:1.5.2
jwt - quarkus 是否支持 gzip jwt 令牌
我正在使用 Smallrye JwtClaimsBuilder 在我的应用程序中构建令牌。
是否可以使用 gzip 压缩令牌的主体?我在文档中找不到有关此的内容。
当然我可以使用不同的方式来生成令牌,但它可以通过 quarkus 框架进行验证吗?
java - 在 Quarkus Graphql 上访问标题
我在我的项目中使用 Quarkus GraphQL。定义了一个带有@GraphQLApi的类和其中的@Query方法。我不确定在查询请求时如何在定义的方法中访问HttpHeaders 。我试过@HeaderParam,但我得到一个空值。quarkus 文档中的标题也没有太多内容。有没有办法从@Query方法中获取标题?
java - 如何在 quarkus-smallrye-opentracing 中禁用 remoteReporter
请求说明:。
我想禁用 jaeger 客户端 remoteReporter,我不需要发送到代理,因为 istio 会成功。
试过:。
在我的 application.properties 中添加quarkus.jaeger.sender-factory
道具,但我没有幸运,并且在源代码中使用此道具时找不到。
环境信息:
爪哇版本:1.8。
quarkus 版本:1.13.2.Final
示例项目。
亚搏体育应用链接
java - 如何直接从 Uni 返回一个值无需将其转换为 CompletableFuture
给出一个上下文,我的类中有两个方法都返回 Uni,其中第一个方法以下列方式依赖于第二个方法
现在在greeting(String name)
(第一个)方法中返回我必须使用的 String 值,subscribeAsCompletionStage().get()
否则返回类型将是Uni<Uni<String>>
.
我的问题如下
- 是一种我可以返回第二种方法的实际结果(包含在 Uni 中的确切值)
ioSimulation
而不使用subscribeAsCompletionStage().get()
if yes 那么我该怎么做的方法? - 这样做有没有更好的办法?比如重构现有的方法。
如果有人有兴趣,可以在这里找到完整的代码
java - Quarkus SmallRye-JWT JSON Web 密钥集刷新间隔
我正在使用 SmallRye JWT 生成和验证 JWT 令牌。
使用微服务 A,我生成 JWT 令牌。
使用微服务 B,我必须验证 JWT 令牌。
在微服务 B 中,我使用以下属性:
微服务 A 具有生成 JWKS 的端点 /key:
当我同时运行两个微服务时,我可以验证微服务 B 中的令牌......但是如果我重新启动微服务 A(它将生成另一个 JWKS),但微服务 B 将无法再验证 JWT 令牌。在 SmallRye - Quarkus 文档中,我发现了以下属性:
smallrye.jwt.jwks.refresh-interval:JWK 缓存刷新间隔,以分钟为单位。除非 mp.jwt.verify.publickey.location 指向基于 HTTP 或 HTTPS URL 的 JWK 集,并且没有从 JWK 集端点返回具有正 max-age 参数值的 HTTP Cache-Control 响应标头,否则它将被忽略。
和
smallrye.jwt.jwks.forced-refresh-interval:以分钟为单位的强制 JWK 缓存刷新间隔,用于限制由于缓存没有 JWK 密钥而导致令牌验证失败时可能发生的强制刷新尝试的频率与孩子与当前令牌的孩子标头匹配的属性。除非 mp.jwt.verify.publickey.location 指向基于 HTTP 或 HTTPS URL 的 JWK 集,否则它将被忽略。
如您所见,我将两个属性都设置为 2 分钟:
但它不起作用。
我该怎么做才能使它起作用?我想再次调用 key.location (http://localhost:8084/key) 来再次阅读新的 JKWS。
谢谢你。
wildfly - 在向下流式传输的 Wildfly 23(keycloak 13)中使用 smallrye-graphql-client
我已成功将 SPI 部署到使用 smallrye-graphql-client 的 keycloak 12 (wildfly 21)。现在我升级到 keycloak 13 并且我的 spi 不再工作,因为使用的 wildfly 23 是不包含 microprofile 扩展的流式下载版本。
我认为有两种方法可以通过将所有缺少的模块文件添加到我的依赖项来解决问题。
(以下更新信息)
额外的信息
目前我收到以下错误
我的 build.gradle 有
当我尝试将模块添加到我的项目时,出现以下错误
我已经通过以下方式修改了 dependenciesToInclude :
我还发现,如果扩展程序已经发布但已停用,我可以将它与命令一起使用
5月18日编辑
我已经进一步调查了这个问题,似乎问题在于我缺少微配置文件配置:
通过拥有这两个包:"io.smallrye.config:smallrye-config:2.3.0", "io.smallrye:smallrye-graphql-client:1.0.20"
我收到以下错误:
我注意到at io.smallrye.config.SmallRyeConfigBuilder.discoverSources(SmallRyeConfigBuilder.java:95)
有 0 个已发现的来源。但是,我不知道如何添加它们。
我尝试添加没有帮助的 META-INF/microprofile-config.properties。
java - Microprofile (SmallRye) @Gauge 但不被度量基础设施调用
我在一个使用 Quarkus 版本 1.7.3 的项目中为 Eclipse Microprofile Metrics 使用 SmallRye 实现。我需要收集 ApplicationScoped 类中的方法返回的随机整数值作为指标,但是当我使用 @Gauge 时,指标基础结构会调用该方法。它对我不起作用,因为我需要为该方法提供一个参数,这样它才有意义。当我自己的应用程序而不是 Microprofile 实现调用该方法时,有没有办法收集这个指标?
在我的场景中,我将一个项目发送到外部 API 并等待他们使用我的 API 进行响应。这是异步的,至少需要 2 分钟,平均 5 到 6 分钟,但有时可能需要几分钟。所以当我收到响应时,我首先从我的数据库中检索项目,然后在我做任何我需要做的事情之前,我调用方法 timeWaitingForResponseMinutes 传递我刚刚从数据库中检索到的项目作为参数:
这个项目有一个名为 timestampItemSent 的 java.sql.Timestamp 字段,我用它来与当前时间进行比较。@Gauge 不能那样工作,因为该方法应该没有参数。我收到错误消息:无法导出指标 company_controller_ItemController_timeWaitingForResponseMinutes: java.lang.IllegalArgumentException
任何帮助将不胜感激。
quarkus - 如何使用连字符为 quarkus 属性设置环境变量?
为带有连字符的属性设置环境变量时,例如:
我希望它被设置为:
但是,这会导致以下消息:
没有连字符的所有其他属性都正确传递。
其他属性也会发生这种情况:
解决方法:重命名环境变量并将它们传递到 application.properties,并使用连字符名称:
什么是正确的转换?它是否记录在某处?