diff --git a/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java b/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java index 28a8bfc452e54..3abf4d6d562b3 100644 --- a/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java +++ b/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java @@ -401,6 +401,15 @@ private boolean hasAnnotation(MethodInfo method, short paramPosition, DotName an toScan.add(classInfo); } } + //sub resources can also have just a path annotation + //if they are 'intermediate' sub resources + for (AnnotationInstance instance : index.getAnnotations(ResteasyReactiveDotNames.PATH)) { + if (instance.target().kind() == AnnotationTarget.Kind.METHOD) { + MethodInfo method = instance.target().asMethod(); + ClassInfo classInfo = method.declaringClass(); + toScan.add(classInfo); + } + } while (!toScan.isEmpty()) { ClassInfo classInfo = toScan.poll(); if (scannedResources.containsKey(classInfo.name()) ||