Я делал абстракцию о моем CRUD, создавая абстрактный класс с теми методами, которые мне нужны. Хотя я и сделал это, когда я отправляю запросы на вставку (POST) и обновляю (PUT), Spring framework не получает преобразование < @RequestBody T> для конкретного класса. Любой метод, вызванный в «createdAction» или «updateAction», не работает.Аннотация класс @RestController Spring 4 - ошибка @ResponseBody
@RestController
@RequestMapping("/user")
public class UserWebResource extends AbstractWebResource<UserEntity> { }
__
public abstract class AbstractWebResource<T extends PersistenceEntity> {
@RequestMapping(method = RequestMethod.POST, produces = "application/json")
public ResponseEntity<T> createAction(@RequestBody T dataEntity, HttpSession session) {
dataEntity = rule.save(dataEntity);
if (dataEntity.hasErrors()) {
return new ResponseEntity<T>(dataEntity, HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<T>(dataEntity, HttpStatus.CREATED);
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, produces = "application/json")
public ResponseEntity<T> updateAction(@PathVariable("id") Integer id, @RequestBody T dataEntity, HttpSession session) { ... }
}
Ошибка POST-е PUT
МОГИЛА: Servlet.service() для сервлета [диспетчерский] в контексте с пути [/ приложение] бросили исключение [обработка запроса не удалось; вложенное исключение java.lang.IllegalStateException: аргумент типа несоответствия HandlerMethod деталь: контроллера [br.inf ... web.resource.UserWebResource] метода [общественный org.springframework.http.ResponseEntity br.inf ... веб .resource.AbstractWebResource.updateAction (java.lang.String, T, javax.servlet.http.HttpSession)]
показывать реализацию AbstractWebResource – Cootri
редактируется @Cootri –