2017-02-20 4 views
1
cumpolsary ist
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(); 
} 

Als ich getroffen: http://base-url/object/abcWarum für GET-Anfrage Slash am Ende

Funktion --1 gibt: UID -> null

Funktion --2 gibt: UID- -> abc

In Funktion --2, ich nur angehängt Schrägstrich, nach UID in @path. Laut Dokumentation ist es jedoch nicht zwingend erforderlich, den führenden Schrägstrich hinzuzufügen. Ich verstehe nicht, warum Funktion --1 dann null zurückgibt?

Antwort

1

Der nachgestellte / im URI ist optional und kann weggelassen werden.

Für die Zwecke der Verabsolutierung einen Weg gegen die Basis-URI, einer der führenden ‚/‘ in einem Pfad in ‚/‘ wird ignoriert und Base URIs werden behandelt, als ob sie beendet: Wie gesagt, Sie in @Path documentation klar ist,

In diesem Fall scheint es einen Defekt der Implementierung Sie verwenden

Verwandte Themen