quarkusquarkus-rest-clientquarkus-extension

Quarkus extension with resteasy reactive client


I am writing a Quarkus extension that servers some endpoints. ı am using quarkus-resteasy-reactive-jsonb for my endpoints. But registering endpoints like regular beans is not working, yes I can inject the endpoint class and call the methods but calling the endpoint from postman, curl etc is not working and returning 404. I believe I need to change registration of my endpoints but how. current registration is ike this:

@BuildStep
    void registerBeans(BuildProducer<AdditionalBeanBuildItem> beans) {
        beans.produce(AdditionalBeanBuildItem.builder()
                .addBeanClasses(TestController.class)
                .build());
    }

following this document is working: https://quarkus.io/guides/building-my-first-extension

but I do not want to use servlets

edit: This is TestController.

@Path("/test")
public class TestController {  
    @GET
    public Response doGet() {
        return Response.ok().entity("OK").build();
    }
}

Solution

  • You need to make sure that your dependencies in your Quarkus extension project match the used Quarkus extensions.

    I've created a small demo that should do a similar thing that you're doing, here: https://github.com/sdaschner/blink-extension/tree/resteasy

    @BuildStep
    AdditionalBeanBuildItem createTestResource() {
        return new AdditionalBeanBuildItem(TestResource.class);
    }
    

    In the deployment project:

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-deployment</artifactId>
    </dependency>
    

    (for you this might be quarkus-resteasy-reactive-deployment)

    In the runtime project:

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy</artifactId>
    </dependency>
    

    Also usually Quarkus tells you when there are some unsatisfied dependencies, when you're trying to mvn clean install your extension project.