그래서 Felix 프레임 워크에서 Amdatu를 사용하여 OSGi 사용 가능 JSON 휴식 서비스를 만듭니다. 내가 사용하는 경우Amdatu 다중 파트 양식 @FormParam은 항상 null
은 @GET 내가
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("file")
public String getFile(@QueryParam("id") String id) {
System.out.println("id : "+id);
return null;
}
을 예상대로 내가 @POST를 사용하는 경우 @POST FormParam 항상
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("file")
public String getFile(@FormParam("id") String id) {
System.out.println("id : "+id);
return null;
}
null의 사용할 때 ID 값을 얻을 수 있지만, 애플리케이션 JSON과 나는 항상을 값이 아닌 전체 원시 json을 얻습니다. 나는 서비스를 테스트하기 위해 크롬의 고급 나머지 클라이언트 플러그인을 사용하고 http://www.amdatu.org/howto/createwebapp.html
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("file")
public String getFile(String id) throws Exception {
return id
}
:
내가이 비디오를 따랐다.사용하여 라이브러리
org.amdatu.web.rest.jaxrs:1.0.4
org.amdatu.web.rest.wink:1.0.8
jackson-jaxrs:1.9.13
jackson-mapper-asl:1.9.13
jackson-core-asl:1.9.13
업데이트
:내가 "컴파일"하도록 변경하여 "제공"으로 설정 내 받는다는 번들에서 depedencies했다 MediaType.APPLICATION_FORM_URLENCODED가 작동합니다.
그러나 MediaType.MULTIPART_FORM_DATA는 여전히 다릅니다.
id : --ARCFormBoundary5xbnwa6as8aor
Content-Disposition: form-data; name="id"
9
--ARCFormBoundary5xbnwa6as8aor--
내가 @FormParam 값이 추가 순간 : 내가 @FormParam를 제거하면
Content-Type: multipart/form-data
다음 ID가 가득 : 내 헤더는 형태의 포스트 동안
없는.
다중 요청을 보내시겠습니까?일반 양식의 경우에는 그렇지 않습니다. 따라서 매개 변수가 자원에 의해 선택되는 것보다 정확합니다. –
내 머리글 : Content-Type : multipart/form-data – SpikerTom