2013-01-11 2 views
0

다중 파트/양식 데이터를 사용하는 JAX-RS 서비스를 만들기 위해 Apache CXF를 사용하고 있는데, 하나는 Java bean에서 처리하고있는 application/json입니다. 내가 가지고있는 문제는 전달되는 날짜 형식이 표준 제티슨 디시리얼라이저에 의해 인식되지 않고 단지 null이된다는 것입니다.CXF에서 사용자 지정 JSON 날짜 처리

서비스는 다음과 같습니다

@POST 
@Path("/blah/") 
@Consumes("multipart/form-data") 
public String doBlah(MultipartBody body) 
{ 
     JSON json = atts.get(0).getObject(JSON.class); 
} 

json으로 개체는 다음과 같습니다

class JSON { 
    Date date; 
} 

에 전달 된 날짜가 같은 것입니다 : 내가 SimpleDateFormat를 사용하여 변환하는 방법을 알고 November 25, 2012 13:35:24, 그래서를 변경할 수 있습니다 JSON 문자열을 가지고 내가 값을 얻을 수있는 다음 수동으로 변환을 할 수 ...하지만 어떻게 jettison에서 변환 할 CXF 클래스를 등록합니까?

beans.xml에 설정이 있습니까? 아니면 사용자 정의 처리기를 추가하거나 기본값 인 Date을 무시할 수 있습니까?

<jaxrs:server …> 
    <jaxrs:providers> 
     <bean class='….DateHandler' /> 
    </jaxrs:providers> 
</jaxrs:server> 

날짜 핸들러 클래스 자체는 매우 간단 할 수있다 : 다음과 같이

+0

체크 아웃 http://stackoverflow.com/questions/9520716/cxf-jaxrs-how-do-i-pass-date-as-queryparam – praseodym

답변

0

당신은 봄에서 사용자 지정 날짜 핸들러를 등록 할 수 있습니다

public class DateHandler implements ParameterHandler<Date> { 
    @Override 
    public Date fromString(String s) { 
     Date ret = // do your magic 
     return ret; 
    } 
} 
+0

json을 비 직렬화하는 데 작동하지 않는 것 같습니까? (일부 설정 문제가있을 수 있습니까?) –

+0

잭슨 JSON 프로세서 (' ') – praseodym

관련 문제