Я пытаюсь запустить службу с помощью почтальона, предоставив требуемый запрос в формате JSON:
{
"baseParam": {
"userId": "u1234"
},
"resource": {
"name": "resource"
}
}
вместе с файлом, состоящим из нескольких частей, как показано на следующем экране почтальона
Экран почтальона
Но я получаю сообщение об ошибке:
'Не удалось преобразовать значение типа' java.lang.String 'в требуемый тип' SampleRequestObject ';вложенное исключение - java.lang.IllegalStateException: невозможно преобразовать значение типа [java.lang.String] в требуемый тип '
Controller
@RequestMapping(method = RequestMethod.POST, value = "/sample/resource",
produces = "application/json")
@ResponseBody
public final ResponseObject sampleResource(@RequestParam("request") final
SampleRequestObject requestObject,@RequestParam("file") final
MultipartFile file,BindingResult result ) throws IOException {
String success = “SUCCESS”;
requestObject.setFile(file);
String id=sampleService.sampleResourceService(resourceObject);
//sampleService Object has been autowired earlier in controller
return success;
}
}
SampleRequestObject - Класс модели
public class SampleRequestObject extends SampleMainObject {
@NotNull
@IsValid(baseParam = { "userId"})
private BaseParam baseParam;
@NotNull
private SampleResource resource; // ANOTHER OBJECT OF SAMPLE RESOURCE
CLASS
private MultipartFile file;
public SampleResource getResource() {
return resource;
}
public void setResource(SampleResource resource) {
this.resource = resource;
}
@Override
public Param getBaseParam() {
return baseParam;
}
public final void setBaseParam(final BaseParam baseParam) {
this.baseParam = baseParam;
}
public MultipartFile getFile() {
return file;
}
public void setFile(MultipartFile file) {
this.file = file;
}
}
Функция в SampleServiceImpl.class (реализация SampleService)
@Override
@Transactional
public final String sampleResourceService( SampleRequestObject
requestObject) {throws IOException
String Id=null;
try
{
MainResourceObject resourceObject = new MainResourceObject();
resourceObject.setActualName(requestObject.getFile()
.getOriginalFilename());
resourceObject.setName(requestObject.getResource().getName()); );
.
.
.
.
.
.
.
.
.
}
catch (Exception e) {
log.error("Service Execution failed",e);
}
}
Я также попытался дать@ModelAttribute вместо @RequestParam.Затем можно было ввести контроллер, а также службу, но все значения requestObject (в контроллере) заполняются как нулевые значения.Следовательно, он генерирует исключение NullPointeException из реализации службы.
Пожалуйста, предоставьте решение.