0

在我的 Quarkus 扩展中,我想使用 REST Client Reactive,但是在运行日志中发生了异常:

Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type cn.ecpark.quarkus.extension.discovery.DiscoveryOpenApi and qualifiers [@RestClient]
    - java member: cn.ecpark.quarkus.extension.discovery.DiscoveryProvider#discoveryOpenApi
    - declared on CLASS bean [types=[cn.ecpark.quarkus.extension.discovery.DiscoveryProvider, java.lang.Object], qualifiers=[@Default, @Any], target=cn.ecpark.quarkus.extension.discovery.DiscoveryProvider]

部署模块代码片段:

@BuildStep
protected void additionalBeans(BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
   additionalBeans.produce(AdditionalBeanBuildItem.builder()
           .addBeanClass(DiscoveryProvider.class)
           .setUnremovable().build());
}

运行时模块代码片段:

@ApplicationScoped
public class DiscoveryProvider {
//    @Inject
    @RestClient
    DiscoveryOpenApi discoveryOpenApi;
}
@Path("/v1/ns/")
@RegisterRestClient(configKey="discovery.nacos")
public interface DiscoveryOpenApi {

    @POST
    @Path("/instance")
    @Produces(MediaType.TEXT_PLAIN)
    Uni<String> registerInstance(@QueryParam("namespaceId") String namespaceId, @QueryParam("groupName") String groupName, @QueryParam("serviceName") String serviceName,
                                 @QueryParam("clusterName") String clusterName, @QueryParam("ip") String ip, @QueryParam("port") @DefaultValue("0") Integer port,
                                 @QueryParam("weight") Double weight, @QueryParam("enabled") Boolean enabled, @QueryParam("healthy") Boolean healthy,
                                 @QueryParam("metadata") String metadata, @QueryParam("ephemeral") Boolean ephemeral);
}

开发插件时应该如何使用Rest Client?

4

0 回答 0