У меня есть 2 микросервиса, которые общаются через симуляцию.
Один микросервис предоставляет метод, который вызывает другой.
Метод принимает в качестве аргумента дату.
Это код метода:
@Override
public String verifyWorkingDaysByAccesstimeAndAttendanceDate(@PathVariable int accessTimeId,
@PathVariable("attendanceDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Date attendanceDate) {
AccessTime accessTime = accessTimeService.findByIDService(AccessTime.class, accessTimeId);
String day = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(attendanceDate).toUpperCase();
String status = "NOT_VERIFIED";
if (workingDayservice.findWorkingDaysByAccesstimeAndDate(accessTime, attendanceDate).toString().contains(day)) {
status = "VERIFIED";
}
return status;
}
==> как вы можете видеть, он принимает дату и проверяет ее наличие в базе данных.
другой микросервис использует этот симулированный класс для вызова этого метода:
@FeignClient(name = "access-control-micro-services-access-time")
public interface AccessTimeClient {
@RequestMapping(value = "/api/v${webService.currentVersion}/workingDay/accessTime/{accessTimeId}/{attendanceDate}", method = RequestMethod.GET)
String verifyWorkingDaysByAccesstimeAndAttendanceDate(@PathVariable("accessTimeId") int accessTimeId,
@PathVariable("attendanceDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Date attendanceDate);
==> второй микросервис вызывает этот метод в другом классе и сообщает ему дату, когда он получает данные из базы данных (формат: 2019-03-29 08:38:08)
Мой код запускает это исключение:
Не удалось преобразовать значение типа 'java.lang.String' в требуемый тип 'java.util.Date'; вложенным исключением является org.springframework.core.convert.ConversionFailedException: не удалось преобразовать тип [java.lang.String] в тип [@ org.springframework.web.bind.annotation.PathVariable @ org.springframework.format.annotation.Dateime java.util.Date] для значения '2019-03-29 08: 38: 08.0'; вложенное исключение - java.lang.IllegalArgumentException: неверный формат: \ "2019-03-29 08: 38: 08.0 \" искажен при \ "08: 38: 08.0 \" "