Код: Выделить всё
2024-11-22T15:47:36.290+01:00 WARN 12532 --- [nio-8080-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{"par1":"par2"}')]

Мне хотелось бы видеть отправленный в запросе JSON, но я не могу ничего зарегистрировать в консоли, от уровня службы до уровня контроллера.
Код: Выделить всё
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity save(@RequestBody ProductFormDTO productFormDTO) {
System.out.println("Received ProductFormDTO: " + productFormDTO);
return productMediator.saveProduct(productFormDTO);
}
В ProductEntity< /code> поле параметров определяется следующим образом:
Код: Выделить всё
@Column(columnDefinition = "jsonb")
private Map parameters;
Код: Выделить всё
private Map parameters;
Код: Выделить всё
public ResponseEntity saveProduct(ProductFormDTO productFormDTO) {
try{
ProductEntity product = formToProductEntity.toProductEntity(productFormDTO);
categoryService.findCategoryByShortID(product.getCategory().getShortId()).ifPresentOrElse(product::setCategory,()->{
throw new CategoryDontExistException();
});
productService.createProduct(product);
return ResponseEntity.ok(new Response("Successful created a product"));
}catch (RuntimeException e){
e.printStackTrace();
return ResponseEntity.status(400).body(new Response("Can't create product category don't exist"));
}
}
Код: Выделить всё
@Transactional
public void createProduct(ProductEntity product) {
logger.info("Creating product with details: {}", product);
if (product != null) {
product.setCreateAt(LocalDate.now());
product.setUid(UUID.randomUUID().toString());
product.setActivate(true);
productRepository.save(product);
for (String uuid : product.getImageUrls()) {
activateImage(uuid);
}
logger.info("Product created successfully with UID: {}", product.getUid());
return;
}
throw new RuntimeException("Product is null, cannot create.");
}
Знаете ли вы, в чем проблема, или, возможно, можете узнать, какой именно JSON отправляется? в запросе? Вероятно, у него неправильное форматирование. Я попробовал RequestLoggingFilter с @WebFilter("/*"), но это не сработало, у меня ничего не было в консоли.
Я тоже уверен что параметры поля в базе данных правильно установлены в jsonb в PostgreSQL.

ps. Раньше это работало, но перестало работать с тех пор, как я изменил тип поля параметров со String на Map.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ap-no-stri