2014-01-10 1 views
1

쿼리 매개 변수에서 @Produces 값을 설정할 수있는 방법이 있는지 알아야합니다. 예 : 쿼리 매개 변수 값이 'JSON'인 경우 메소드 헤더를 @Produces (application/json)로 설정하거나 'XML'인 경우 @Produces (application/xml)로 설정하고자합니다.미디어 유형을 동적으로 설정 @ 주석 주석 값을 생성합니다.

우리는 @Produces ({ "application/json", "application/xml"})로 여러 미디어 유형을 지정할 수 있음을 알고 있지만, 출력 할 때 오류가 발생하므로 저에게 적합하지 않습니다. JSON입니다.

감사합니다.

+0

가능한 반복 : http://stackoverflow.com/questions/10636201/java-annotations-values-provided-in-dynamic-manner – CodeChimp

+0

JSON을 생성 할 때 발생하는 오류는 무엇입니까? 어쨌든'@ Produces'를 사용하지 말고, (http://stackoverflow.com/a/21053612/290799)의 @SotiriosDelimanolis가 권고 한 바와 같이 반환 유형을'Response'로 변경하고'#type (...)'. –

+0

도움을 주신 Michal에게 감사의 말을 전하십시오 !! – sf9251

답변

2

Java 언어 사양에는 주석의 속성에 대한 규칙이 있습니다. 원시적 형, 문자열, 클래스, 모든 매개 변수 호출 : 주석 형에 선언 된 메서드의 반환 형식이없는 경우 다음 중 하나를 구체적으로

그것은 it says this은 컴파일 타임 오류입니다 클래스, 열거 형 (§8.9), 주석 유형 또는 요소 유형 이 앞의 유형 중 하나 인 배열 유형 (§10)입니다.

기본적으로 주석 (및 속성의 값)은 컴파일시의 상수를 의미합니다. 따라서 아니요, 주석 자체의 값을 변경할 수 없습니다.

당신이 할 수있는 일은 follow this이며 적절한 미디어 유형을 가진 Response 개체를 반환합니다.

+0

안내에 감사드립니다. 그것은 도왔다!! – sf9251