gpt4 book ai didi

java - 尝试在 Quarkus 中进行 REST 调用时出错

转载 作者:行者123 更新时间:2023-12-02 18:53:36 33 4
gpt4 key购买 nike

我正在尝试在我拥有的另一项服务上执行请求。我用来创建应用程序的指南是:

QUARKUS - Using the REST Client

QUARKUS - CDI Reference

QUARKUS - Workshop

我收到如下错误:

org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Error injecting com.easy.ecomm.core.product.ProductClient com.easy.ecomm.core.cart.CartService.productClient

org.eclipse.microprofile.rest.client.RestClientDefinitionException: Parameters and variables don't match on interface com.easy.ecomm.core.product.ProductClient::findProductById

这是 ProductClient 类

import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

@Path("products")
@RegisterRestClient(configKey = "products-api")
public interface ProductClient {

@GET
@Path("{id}")
Product findProductById(String id);

}

这是服务层:

import org.eclipse.microprofile.rest.client.inject.RestClient;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

@ApplicationScoped
public class CartService {

@Inject
@RestClient
ProductClient productClient;

public void addItem(String cartId, String productId, Integer amount){
// Code to find the cart on a queue.
Product product = findProduct(productId);
cart.getItems().add(new CartItem(amount, product));
}

private Product findProduct(String productId) {
return productClient.findProductById(productId);
}
}

application.properties:

products-api/mp-rest/url=http://localhost:8060
products-api/mp-rest/scope=javax.inject.Singleton

依赖项与我们在指南 quarkus-rest-clientquarkus-rest-client-jackson 上的依赖项相同

我已经尝试过的事情:

@RegisterRestClient 中删除ConfigKey 并使用application.properties 中的完整路径,按照here 所述在我的POM.xml 中添加Jandex 插件.

但是还是没有成功。每次更改都会给我相同的错误消息。

最佳答案

您忘记使用 @PathParam 注释您的路径变量,这就是它无法实例化客户端的原因:

import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import javax.ws.rs.PathParam;

@Path("products")
@RegisterRestClient(configKey = "products-api")
public interface ProductClient {

@GET
@Path("{id}")
Product findProductById(@PathParam("id") String id);

}

关于java - 尝试在 Quarkus 中进行 REST 调用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66450546/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com