【发布时间】:2017-04-20 15:22:26
【问题描述】:
我正在使用带有代理模式的 apache-cxf-jaxrs。但我无法更改查询参数的日期格式。
有我的界面:
@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);
}
客户端初始化大约:
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,因为日期格式为 DateFormat.DEFAULT 而不是“yyyyMMdd”。
serviceClient.getData(new Date());
我的带有 SimpleDateFormatter 的 ObjectMapper 从未使用过。我确实忘记了一些东西,但我不知道它是什么。
非常感谢您的帮助。
【问题讨论】:
标签: java apache jax-rs cxf simpledateformat