Using Quarkus I get the following error at execution time:
Caused by: java.lang.IllegalArgumentException: Multiple matching properties for name “security.jaxrs.deny-unannotated-endpoints” property was matched by both public boolean io.quarkus.resteasy.reactive.common.runtime.JaxRsSecurityConfig.denyJaxRs and public boolean io.quarkus.resteasy.runtime.JaxRsSecurityConfig.denyJaxRs. This is likely because you have an incompatible combination of extensions that both define the same properties (e.g. including both reactive and blocking database extensions)
My pom properties are:
<compiler-plugin.version>3.8.1</compiler-plugin.version> <maven.compiler.parameters>true</maven.compiler.parameters> <maven.compiler.source>12</maven.compiler.source> <maven.compiler.target>12</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <quarkus-plugin.version>1.13.3.Final</quarkus-plugin.version> <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> <quarkus.platform.version>1.13.3.Final</quarkus.platform.version>
And dependencies:
<dependencies> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-mutiny</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-vertx</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-jsonb</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-mutiny</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-reactive</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-rest-client-reactive</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-jwt</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-jwt-build</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-jdbc-postgresql</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-arc</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit5</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <scope>test</scope> </dependency> </dependencies>
I’m just trying to stream using Multi from mutiny and Server Sent Elements:
@GET @Produces(MediaType.SERVER_SENT_EVENTS) @RestSseElementType(MediaType.TEXT_PLAIN) @Path("/stream/{count}/{name}") public Multi<String> greetingsAsStream(int count, String name) { return service.greetings(count, name); }
Advertisement
Answer
You have both classic RESTEasy (quarkus-resteasy-jsonb
, quarkus-resteasy-mutiny
) and RESTEasy Reactive (quarkus-resteasy-reactive
). You need to pick one and stick to it.
For example, if you want RESTEasy Reactive, you’d remove quarkus-resteasy-mutiny
(no need for extra dependency with RESTEasy Reactive), and replace quarkus-resteasy-jsonb
with quarkus-resteasy-reactive-jsonb
.