2015-01-22 2 views
0

: 나머지 클라이언트에서json을 전달하려면 jersey 메서드에 주석을 추가하는 방법? 내가 저지 메소드 선언 다음 한

@POST 
    @Path("/fooPath") 
    @Produces({MediaType.APPLICATION_JSON}) 
    @Consumes({MediaType.APPLICATION_JSON}) 
    public Response isSellableOnline(@FormParam("productCodes") final List<String> productCodes, 
            @FormParam("storeName") final String storeName, 
            @Context HttpServletRequest request) { 

나는 이런 식으로 다음과 같은 방법을 호출 할 : 나는 방법을 디버깅 할 때 enter image description here

내가받은 매개 변수가 null 것을 볼 :

enter image description here

메소드 선언을 다시 작성하는 방법은 무엇입니까?

+0

서버 로그에 뭔가있을있다. 그것도 게시하십시오. – Gimby

+0

당신이 옳습니다. 이제 나는 질문을 바꾸어 말할 것이다. – gstackoverflow

+0

@ 김비 주제가 업데이트되었습니다. – gstackoverflow

답변

3

isSellableOnlie 메소드에서 폼 매개 변수를 예상하거나 추출하려고하지만 들어오는 POST 요청이 JSON이기 때문입니다.

JSON을 원한다면 JSON을 직렬화 할 수 있도록 POJO 클래스를 만들어야합니다. 당신의 방법에

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Store { 

private String storeName; 
private List<String> productCodes; 

public Store() { 
} 

public String getName() { 
    return name; 
} 

public List<String> getProductCodes() { 
    return productCodes; 
} 
} 

그리고는 :

@POST 
@Path("/fooPath") 
@Produces({MediaType.APPLICATION_JSON}) 
@Consumes({MediaType.APPLICATION_JSON}) 
public Response isSellableOnline(Store store) { 
    store.getName(); 
... 
} 
+0

방법을 다시 작성하는 방법은 무엇입니까? – gstackoverflow

+0

매우 유용한 답변 – gstackoverflow