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())); 
関連する問題