2013-10-08 4 views
0

나는 우리의 REST API를 문서화하게 발음 평가 그리고 난이 검증 단계에 문제가 있어요 :하게 발음 유효성 검사 @POST @FormParam + String 데이터 실패

Validation result has errors. 
my.java: error: [core] An entity parameter must be of type MultivaluedMap<String, String> if there is another parameter annotated with @FormParam. 
          @FormParam("my-param") String myParam, String data) 

수용이 구조 @FormParam 바인딩 외에도 String 엔티티로 POST 데이터가 Jersey에서 지원되므로 enunciate가 질식하는 이유를 모르십니까? JAX-RS와 호환되지 않습니까?

뭔가 잘못되었을 때 감사를 위해 전체 게시물 데이터를 캡처하는 것이 정말 유용합니다. 이 인수를 무시하도록 enunciate를 구성하는 방법이 있습니까?

그렇지 않은 경우 기분 좋게 유지할 수 있도록 게시물 데이터를 캡처하는 다른 방법이 있습니까? 문자열 화 프로세스가 전달 된 문자열을 정확히 생성하지 못할 수도 있으므로 MultivaluedMap을 사용하는 것을 꺼립니다.

고마워요!

답변

0

Enunciate 수행 확인 유효성 검사가 오래된 것일 수 있습니다. 변경 요청은 submitting a JIRA issue으로 간주 할 수 있습니다.

해결 방법으로 시도 할 수있는 한 가지 방법은 사용자 지정 매개 변수 주석을 만들고 Enunciate가이를 사용자 지정 리소스 매개 변수로 간주하도록 구성하는 것입니다. 매개 변수의 목적은 감사를위한 경우

<enunciate> 
    ... 
    <services> 
    <rest> 
     <custom-resource-parameter-annotation qualifiedName="org.myco.CustomResourceParam"/> 
    </rest> 
    </services> 
    ... 
</enunciate> 

그러나, 나는 정말 Jersey filter를 사용하는 것이 좋습니다 것입니다. 그렇게하면 감사 문제로 API 코드를 낭비하지 않아도됩니다.