2017-02-20 72 views
1
FUNCTION --1 

@Path("/object/") 
public Class TestService { 

@GET 
@Produces({ "application/json" }) 
@Path("/{uid}") 
public Response hello(@PathParam("uid") String uid){ 
    System.out.println("UID-->" + uid); 
    return Response.status(Response.Status.OK).build(); 
} 

===================================================================== 

FUNCTION --2 

@Path("/object/") 
public Class TestService { 

@GET 
@Produces({ "application/json" }) 
@Path("/{uid}/") 
public Response hello(@PathParam("uid") String uid){ 
    System.out.println("UID-->" + uid); 
    return Response.status(Response.Status.OK).build(); 
} 

Когда я попал: http://base-url/object/abcПочему косая черта cumpolsary для запроса GET с @path аннотацией

Функции --1 дает: UID -> нулевого

Функция --2 дает: UID- -> abc

В функции -2, я просто добавил косую черту, после uid в @path. Но в соответствии с документацией не обязательно добавлять ведущую косую черту. Я не понимаю, почему функция -1 возвращает null?

ответ

1

Трейлинг / в URI является необязательным и может быть опущен. Как вы сказали, очевидно, в @Path documentation:

Для целей абсолютизации пути к базе URI, ведущий «/» в пути игнорируется и базовых URI, рассматриваются как если бы они оказались в «/»

В этом случае, кажется, дефект реализации, который вы используете