Index: src/main/java/org/jboss/resteasy/util/GetRestful.java =================================================================== --- src/main/java/org/jboss/resteasy/util/GetRestful.java (revision 892) +++ src/main/java/org/jboss/resteasy/util/GetRestful.java (working copy) @@ -26,21 +26,26 @@ * Given a class, search itself and implemented interfaces for jax-rs annotations. * * @param clazz - * @return list of class and intertfaces that have jax-rs annotations + * @return list of class and interfaces that have jax-rs annotations */ public static Class getSubResourceClass(Class clazz) { - if (clazz.isAnnotationPresent(Path.class)) + Class actualClass = clazz; + while (actualClass != null) { - return clazz; - } - for (Method method : clazz.getMethods()) - { - if (method.isAnnotationPresent(Path.class)) return clazz; - for (Annotation ann : method.getAnnotations()) + if (actualClass.isAnnotationPresent(Path.class)) { - if (ann.annotationType().isAnnotationPresent(HttpMethod.class)) return clazz; + return actualClass; } + for (Method method : actualClass.getMethods()) + { + if (method.isAnnotationPresent(Path.class)) return actualClass; + for (Annotation ann : method.getAnnotations()) + { + if (ann.annotationType().isAnnotationPresent(HttpMethod.class)) return actualClass; + } + } + actualClass = actualClass.getSuperclass(); } // ok, no @Path or @HttpMethods so look in interfaces. Class[] intfs = clazz.getInterfaces();