cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-6917) SuperClass and Interface's Annotations are ignored when the Method contains ParameterAnnotation
Date Tue, 24 May 2016 20:06:12 GMT

    [ https://issues.apache.org/jira/browse/CXF-6917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15298802#comment-15298802
] 

Sergey Beryozkin commented on CXF-6917:
---------------------------------------

Well this is not the first time users have come across it. But IMHO it is actually not a good
idea to have REST API enablers (annotations) spread around the class hierarchy and I agree
with the spec completely here. In a pure Java land it would be like having a contract partially
represented in the interface and the impl, with the impl passed around. 
If one has the interface to represent the resource methods then why duplicate some of the
annotations on the impl level ?
Thanks

> SuperClass and Interface's Annotations are ignored when the Method contains ParameterAnnotation
> -----------------------------------------------------------------------------------------------
>
>                 Key: CXF-6917
>                 URL: https://issues.apache.org/jira/browse/CXF-6917
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.6
>         Environment: Mac java 8
>            Reporter: Neal Hu
>             Fix For: 3.0.10, 3.2.0, 3.1.8
>
>
> Suppose we have below interface and its implementation:
> public interface HelloWorld {
>     @GET
>     @Path("/hello")
>     String sayHello(@QueryParam("name") String name);
>     @GET
>     @Path("/hello3")
>     String sayHello3();
> }
> @Path("/")
> public class HelloWorldImpl implements HelloWorld {
> 	@Override
> 	public String sayHello(@QueryParam("name") String name){
> 		return "hello " + name;
> 	}
> 	@GET
> 	@Path("/hello2")
> 	public String sayHello2(@QueryParam("name") String name){
> 		return "hello2 " + name;
> 	}
> 	@Override
> 	public String sayHello3(){
> 		return "hello3 ";
> 	}
> }
> Get /hello3 works good. but Get /hello?name=neal will result in 404. The expected output
is hello neal.
> The root cause is in org.apache.cxf.jaxrs.utils.AnnotationUtils:167 CXF ignores the recurrence
search of the method who has parameter annotations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message