Я пытаюсь отправить через Multipart/Form-Data запрос POST от моего контроллера продуктов, где я загружаю файл изображений и информации моего продукта в JSON
@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/product")
public class ProductController {
final ProductService productService;
final CategoryService categoryService;
final ProductMapper productMapper;
final S3Client s3Client;
private final String BUCKET_NAME = "awstockproducts" + System.currentTimeMillis();
public ProductController(ProductService productService, ProductMapper productMapper, CategoryService categoryService, S3Client s3Client) {
this.productService = productService;
this.productMapper = productMapper;
this.categoryService = categoryService;
this.s3Client = s3Client;
}
@PostMapping(MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity saveProduct (@RequestPart("productDto") @Valid ProductDto productDto, @RequestPart(value = "file")MultipartFile file) {
try {
if (productService.existsByProduct(productDto.getProduct())) {
return ResponseEntity.status(HttpStatus.CONFLICT).body("Product already exists!");
}
ProductModel productModel = productMapper.toProductModel(productDto);
CategoryModel categoryModel = categoryService.findById(productDto.getProductCategory().getCategory_id())
.orElseThrow(() -> new RuntimeException("Category not found"));
productModel.setProductCategory(categoryModel);
String fileName = "/products/images/" + UUID.randomUUID().toString() + "-" + file.getOriginalFilename();
s3Client.putObject(PutObjectRequest
.builder()
.bucket(BUCKET_NAME)
.key(fileName)
.build(),
software.amazon.awssdk.core.sync.RequestBody.fromString("Testing java sdk"));
return ResponseEntity.status(HttpStatus.CREATED).body(productService.save(productModel));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.CONFLICT).body("Cannot create product. Check if the fields sent in your request are correct.");
}
}
В моем почтальце я отправляю его так, и получаю ошибку 405
< /p>
В моей консоли я получаю ошибку: < /p>
Request method 'POST' is not supported]
< /code>
Я не понимаю, почему, поскольку я отправляю пост -картинг < /p>
Обновленная ошибка в почте: < /p>
{
"cause": null,
"stackTrace": [
{
"classLoaderName": "app",
"moduleName": null,
"moduleVersion": null,
"methodName": "from",
"fileName": "UnrecognizedPropertyException.java",
"lineNumber": 61,
"nativeMethod": false,
"className": "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException"
},
{
"classLoaderName": "app",
"moduleName": null,
"moduleVersion": null,
"methodName": "handleUnknownProperty",
"fileName": "DeserializationContext.java",
"lineNumber": 1132,
"nativeMethod": false,
"className": "com.fasterxml.jackson.databind.DeserializationContext"
},
{
"classLoaderName": "app",
"moduleName": null,
"moduleVersion": null,
"methodName": "handleUnknownProperty",
"fileName": "StdDeserializer.java",
"lineNumber": 2202,
"nativeMethod": false,
"className": "com.fasterxml.jackson.databind.deser.std.StdDeserializer"
}, ...
Подробнее здесь: https://stackoverflow.com/questions/756 ... -form-data
Spring Boot - Метод 'post' не поддерживается (Multipart/Form -Data) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Метод Java Wildfly POST multipart/form-data: «Невозможно получить границу...»
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-