【发布时间】:2020-11-27 14:29:25
【问题描述】:
我正在尝试让上下文传播在 Quarkus 本机模式下工作。
下面的代码在 JVM 模式下按预期工作,但在本机模式下返回 MDC value: null。
“按预期”是指:
回复curl http://localhost:8080/thread-context 是MDC value: from-thread-context
@Inject
ManagedExecutor managedExecutor;
@Inject
ThreadContext threadContext;
private final Supplier<String> mdcValueSupplier =
() -> "MDC value: " + MDC.get("foo") + "\n";
@GET
@Path("thread-context")
public String get() throws ExecutionException, InterruptedException {
MDC.put("foo", "from-thread-context");
Supplier<String> ctxSupplier = threadContext.contextualSupplier(mdcValueSupplier);
return managedExecutor.supplyAsync(ctxSupplier).get();
}
我创建了一个github repo,其中包含演示应用程序的完整代码和重现问题的分步说明。
存在依赖io.quarkus:quarkus-smallrye-context-propagation。
Quarkus 版本:1.9.2
问:是我的代码问题还是 Quarkus 问题?
【问题讨论】:
标签: java quarkus graalvm smallrye