Чтобы соответствовать URL-адресу в вашем описании, лучше всего избегать различных компонентов даты, таких как месяц, день и год.Затем внутри метода вы можете собрать их вместе, чтобы они стали объектом Date.
Чтобы захватить их все как один тип Date, он будет работать со структурой URL, где он не сможет определить разницу между «косыми чертами» в Date и «slashes», различающими различные параметры URL.При условии, что вы не хотите переключаться на представление ISO-8601 для даты и не хотите% -кодировать косые черты в% 2F или использовать строки запросов и т. Д.
Что-то подобное должно работать:
@GET
@Path("/dd/{sp}/{rpt}/{ter}/{month}/{day}/{year}/{grant}/{refresh}")
@Produces(MediaType.APPLICATION_JSON)
public List<ReportPeriodBean> getApprovals(@PathParam("sp") String sp,
@PathParam("rpt") String rpt,
@PathParam("ter") String ter,
@PathParam("month") int month,
@PathParam("day") int day,
@PathParam("year") int year,
@PathParam("grant") String grant,
@PathParam("refresh") boolean refresh) {
LocalDate date = LocalDate.of(year, month, day);
// Now use the date however you like
}
Это позволит вам сохранить URL в таком синтаксисе, который кажется предпочтительным:
rs/Service/Store/Grantor/122/5801/DUE/10/30/2017/grantValue/true?request.preventCache=1562353357306