2014-02-27 2 views
2

같은 문자열의 배열은 내가하는 방법과 편안한 웹 서비스가 있습니다저지 클라이언트 : PARAM

@GET 
@Path("/get/{id}") 
public Operation getData(@PathParam("id") String... id) 
{ 
    //some code 
    return data; 
} 

내가 나타났습니다 MultivaluedMap을하지만이 쿼리 매개 변수입니다.

여기서 알 수 있듯이 여기에는 하나의 ID 만 추가 할 수 있으며 문자열 배열은 추가 할 수 없습니다. 내 목표는 매개 변수로 배열을 추가하는 것입니다.

WebResource resource = Client.create().resource(getBaseURI()).path("get").path(id); 

저널을 사용하여 매개 변수로 문자열 배열을 전달하는 방법은 무엇입니까? 도움 주셔서 감사합니다.

답변

0

According to JAX-RS specification 같이 @PathParam으로 컬렉션을 수신하는 유일한 방법은 List of PathSegment로 수신하는 것입니다.
또 다른 접근법은 모든 문자열을 ';' 단일 문자열로 전달한 다음 서버 측에서 분할합니다.
또한. 어쩌면 당신은 @QueryParam으로 전환 할 수 있을까요? @PathParam은 단일 매개 변수로 여러 값을 전달하도록 설계되지 않았습니다.

1

일반적으로 Collection@QueryParam으로 사용하여이 문제를 해결했습니다.

뭔가 같은 :

@GET 
@Path("/get/") 
public Operation getData(@QueryParam("id") Set<String> ids) 
{ 
    //some code 
    return data; 
}