2017-04-20 7 views
0

Proxy-Pattern과 함께 apache-cxf-jaxrs를 사용하고 있습니다. 하지만 쿼리 매개 변수에 대한 날짜 형식을 변경할 수 없습니다. 날짜 표준시가로 포맷 때문에,Apache-cxf JAXRSClient 사용자 정의 Dateformat

JacksonJsonProvider jsp = new JacksonJsonProvider(); 
ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.setDateFormat(new SimpleDateFormat("yyyyMMdd"));  
jsp.setMapper(objectMapper); 
DataService serviceClient = (DataService) 
JAXRSClientFactory.create(baseUrl, serviceClass, Arrays.asList(jsp)); 

콜링 다음 코드 내 백엔드에서 java.time.format.DateTimeParseException 원인 : 클라이언트에 대해 초기화

@Path("/api/data") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public interface DataService { 

@GET 
@Path("/") 
List<DataDto> getData(@JsonFormat(pattern = "yyyyMMdd") @QueryParam("from") Date from); 
} 

:

내 인터페이스가 DateFormat.DEFAULT이며 "yyyyMMdd"에는 없습니다.

serviceClient.getData(new Date()); 

SimpleDateFormatter가있는 My ObjectMapper는 절대로 사용되지 않습니다. 나는 뭔가를 잊어 버렸지 만, 나는 그것이 무엇인지 전혀 모른다.

도움을 주셔서 감사합니다.

답변

1

알겠습니다. dateformat에 대해 새로운 ParamConverterProvider를 등록해야합니다.

JAXRSClientFactory.create(baseUrl, serviceClass, Arrays.asList(new JacksonJsonProvider(), new MyCustomDataParamConverter()));