2016-03-31 7 views
1

Я делал абстракцию о моем 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)]

+0

показывать реализацию AbstractWebResource – Cootri

+0

редактируется @Cootri –

ответ

0

Похоже, что существует проблема с каркасом маршалинга.

Вы не можете использовать общие типы с Jackson 2.7 & Spring 4.2, вам следует либо отменить версию зависимости Jackson от версии 2.6.6, либо использовать Spring 4.3 (когда она выйдет).

source