2014-04-23 2 views
0

제공된 매개 변수없이 호출 할 때 서비스에 @DefaultValue를 지정하면 왜 다른 유형이 아닌 String 일 수 있습니까? 아래의 @DefaultValue (0)은 "int에서 String으로 변환 할 수 없습니다"오류를 던집니다. 기본값을 다른 유형으로 바꾸려면 어떻게해야합니까? javadoc 내에서 설명한대로 @DefaultValue@DefaultValue에 대한 유형을 지정할 수없는 이유는 무엇입니까?

@POST 
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
@Path("/createAccount") 
public BankActivity createAccount(
     @QueryParam("ownerId") @DefaultValue(0) int ownerID, 
     @QueryParam("accountPin") @DefaultValue("1234") String pin, 

답변

1

은 양식 매개 변수 쿼리 매개 변수, 쿠키, 그리고 몇 가지 다른 사람에 대한 기본 값을 나타냅니다. 이러한 다양한 매개 변수와 값은 요청의 일부로 보내집니다. http 서버는 그것들을 문자열로 받아 들여 jax-rs 컨테이너가 구문 분석하고 적절하게 변환합니다. @DefaultValue은 값을 문자열로 제공하고 컨테이너가 제공된 값으로 변환 할 때 사용합니다.

따라서 int 값의 문자열 표현을 제공하면 컨테이너가 올바른 변환을 수행합니다.

관련 문제