- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
描述错误我正在使用 MP Rest Client 从我的服务实现中调用另一个 Rest 服务,并希望通过使用 @ClientsHeadersFactory
覆盖一些 header 属性,但是当我使用 @Inject
来使用另一个 CDI Bean 然后引发 NullpointerException
。使用 Micro Profile Rest Client 1.4,如果您的实现由 CDI 管理,则可以使用“@Inject”。例如,这允许您注入(inject) secret 或任何其他 CDI bean 来计算 header 值。
预期行为注入(inject)的 ConfigProperty 可用且不为空
实际行为NullpointerException发生在ClientHeadersFactory实现的update方法中。
复制重现该行为的步骤:
@ApplicationScoped
public class MyClientHeadersFactory implements ClientHeadersFactory {
@Inject
@ConfigProperty(name = "secrets.value")
private String secretValue;
@Override
public MultivaluedMap<String, String> update(MultivaluedMap<String, String> incomingHeaders, MultivaluedMap<String, String> clientOutgoingHeaders) {
System.out.println("--- Incoming headers of the JAX-RS environment");
incomingHeaders.forEach((k, v) -> System.out.println(k + ":" + v));
System.out.println("--- Specified outgoing headers of the Rest Client");
clientOutgoingHeaders.forEach((k, v) -> System.out.println(k + ":" + v));
MultivaluedMap<String, String> resultHeader = new MultivaluedHashMap();
resultHeader.putAll(incomingHeaders);
resultHeader.putAll(clientOutgoingHeaders);
//here is the NullpointerException raised
resultHeader.add("X-Secret-Header", secretValue);
System.out.println("--- Header of the Rest Client after merging");
resultHeader.forEach((k, v) -> System.out.println(k + ":" + v));
return resultHeader;
}
}
@RegisterClientHeaders()
@RegisterRestClient(configKey = "remote-restservice")
@RegisterClientHeaders(MyClientHeadersFactory.class)
public interface RemoteRestService
{
@POST
@Path("/doSomeStuff")
@Consumes({ "application/json" })
@Produces({ "application/json" })
Response createStuff( @Valid Stuff stuff);
}
配置
# Add your application.properties here, if applicable.
remote-restservice/mp-rest/url=http://localhost:9090/service
secrets.value=test
截图(如果适用,请添加屏幕截图以帮助解释您的问题。)
环境(请填写以下信息):
uname -a
或 ver
的输出:java -version
的输出:mvnw --version
或 gradlew --version
的输出):其他上下文(在此处添加有关该问题的任何其他上下文。)
最佳答案
我有同样的问题,它已在 Quarkus 1.8 中修复。
关于java - Quarkus Rest Client 不在 ClientHeadersFactory 的实现中注入(inject) ConfigProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63010180/
对于我的 Quarkus 应用程序,我正在寻找一种从自定义 ConfigProperties 类中定义配置映射的方法。我尝试了以下方法: import io.quarkus.arc.config.Co
描述错误我正在使用 MP Rest Client 从我的服务实现中调用另一个 Rest 服务,并希望通过使用 @ClientsHeadersFactory 覆盖一些 header 属性,但是当我使用
我在玩 mpConfig-1.2 功能,但它似乎在我的设置中不起作用。 使用 Liberty 18.0.0.2。 为 microprofile-config-api 添加了 maven 依赖项,CDI
我是一名优秀的程序员,十分优秀!