Skip to content

improve rest client exception for method lacking annotations #38562

@maxandersen

Description

@maxandersen

Description

I have this:

@GET
    @Path("/streams/{id}")
    public StreamResponse getStream(Integer id); 

    @GET
    @Path("/messages")
    public MessageResponse getMessagesForTopic(int anchor, int num_before, int num_after, List<Narrow> narrows, boolean apply_markdown);

...and I get this noninformative error leaving user guessing what its missing... (in this case that no parameters has @restquery or similar annotation afaics)

ava.lang.RuntimeException: Error injecting io.quarkus.bot.zulip.ZulipRestClient io.quarkus.bot.zulip.ZulipClient.zulipRestClient
        at io.quarkus.bot.zulip.ZulipClient_Bean.doCreate(Unknown Source)
        at io.quarkus.bot.zulip.ZulipClient_Bean.create(Unknown Source)
        at io.quarkus.bot.zulip.ZulipClient_Bean.create(Unknown Source)
        at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
        at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
        at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
        at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.c16(Unknown Source)
        at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.computeIfAbsent(Unknown Source)
        at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
        at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:21)
        at io.quarkus.bot.zulip.ZulipClient_ClientProxy.arc$delegate(Unknown Source)
        at io.quarkus.bot.zulip.ZulipClient_ClientProxy.addEmojiReaction(Unknown Source)
        at io.quarkus.bot.zulip.ZulipBot.onWebhook(ZulipBot.java:45)
        at io.quarkus.bot.zulip.ZulipBot$quarkusrestinvoker$onWebhook_b967d6a1fba85cea472816cc34067be46cc78eff.invoke(Unknown Source)
        at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
        at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
        at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
        at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
        at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
        at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.eclipse.microprofile.rest.client.RestClientDefinitionException: org.jboss.resteasy.reactive.client.api.InvalidRestClientDefinitionException: Failed to generate client for class interface io.quarkus.bot.zulip.ZulipRestClient : Failed to process method 'io.quarkus.bot.zulip.ZulipRestClient#getMessagesForTopic'
        at io.quarkus.rest.client.reactive.runtime.RestClientBuilderImpl.build(RestClientBuilderImpl.java:417)
        at io.quarkus.rest.client.reactive.runtime.QuarkusRestClientBuilderImpl.build(QuarkusRestClientBuilderImpl.java:242)
        at io.quarkus.rest.client.reactive.runtime.RestClientCDIDelegateBuilder.build(RestClientCDIDelegateBuilder.java:62)
        at io.quarkus.rest.client.reactive.runtime.RestClientCDIDelegateBuilder.createDelegate(RestClientCDIDelegateBuilder.java:44)
        at io.quarkus.rest.client.reactive.runtime.RestClientReactiveCDIWrapperBase.delegate(RestClientReactiveCDIWrapperBase.java:76)
        at io.quarkus.rest.client.reactive.runtime.RestClientReactiveCDIWrapperBase.<init>(RestClientReactiveCDIWrapperBase.java:30)
        at io.quarkus.bot.zulip.ZulipRestClient$$CDIWrapper.<init>(Unknown Source)
        at io.quarkus.bot.zulip.ZulipRestClient$$CDIWrapper_ClientProxy.<init>(Unknown Source)
        at io.quarkus.bot.zulip.ZulipRestClient$$CDIWrapper_Bean.proxy(Unknown Source)
        at io.quarkus.bot.zulip.ZulipRestClient$$CDIWrapper_Bean.get(Unknown Source)
        at io.quarkus.bot.zulip.ZulipRestClient$$CDIWrapper_Bean.get(Unknown Source)
        ... 24 more
Caused by: org.jboss.resteasy.reactive.client.api.InvalidRestClientDefinitionException: Failed to generate client for class interface io.quarkus.bot.zulip.ZulipRestClient : Failed to process method 'io.quarkus.bot.zulip.ZulipRestClient#getMessagesForTopic'
        at org.jboss.resteasy.reactive.client.impl.ClientProxies.get(ClientProxies.java:29)
        at org.jboss.resteasy.reactive.client.impl.WebTargetImpl.proxy(WebTargetImpl.java:449)
        at io.quarkus.rest.client.reactive.runtime.RestClientBuilderImpl.build(RestClientBuilderImpl.java:415)
        ... 34 more

Implementation ideas

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions