나는 메서드 custom (GET)을 가진 REST webservice를 가지고있다.cxf에서 메시지 본문에 사용자 지정 개체를 설정하는 방법은 무엇입니까?
@GET
@Path("/custom")
public UIResponse custom(final UIParameters uiParameters){...}
이 방법에는 하나의 인수가 있습니다. 이것은 내 사용자 지정 개체입니다.
개체 UIParameters는 쿼리 문자열로 지정된 인수에서 작성됩니다.
예 : http://example.com/custom?objectType=article
UIParameters은 하나 개의 필드를 포함 할 객체 : 나는, URL에서이 매개 변수를 얻을 수 InInterceptor를 사용 UIParameter 객체를 구축하고 메시지의 내용을 설정하기위한 시도
UIParameters {
String objectType = "article";
}
. 불행히도 그것은 작동하지 않습니다. 그 후 UIParameters에 MessageBodyReader를 제공했지만 여전히 작동하지 않습니다.
이 목표를 달성하려면 어떻게해야합니까?
감사
업데이트 :
내가 헤더를 http로 쿼리 문자열을 복사 한 InInterceptor에서. 이제 MessageBodyReader에서 사용자 장소 매개 변수에 액세스 할 수있는 URL의 일부입니다. 여기서 객체 UIParameters를 작성할 수 있습니다.
모든 것이 잘 작동하지만이 솔루션이 최고라고는 생각하지 않습니다.
누군가 더 좋은 해결책을 알고 있습니까?
감사합니다
@Context UriInfo
주석을 사용하는 경우에는 CXF 문서 http://cxf.apache.org/docs/jax-rs-basics.html#JAX-RSBasics-Parameterbeans를 참조하십시오. 물론 이것이 최선의 방법이지만 불행히도 나는 setter를 사용할 수 없기 때문에 빌더 패턴을 사용하고 싶다. – bombel
세터없이 시도하십시오. 나는 사용자 정의에 의해 그들을 복사했지만, 문서가 필요하지 않을 수도 있습니다. – pedrofb
어떻게 모든 체인을 호출할까요? 새로운 UIParameters(). Builder(). objectType ("type"). build(); 모든 필드를 설정 한 후 전체 개체의 유효성을 검사하려고합니다. – bombel