私は自分のCRUDを抽象化して、必要なメソッドを持つ抽象クラスを作成していました。私はそれを完了しましたが、私は挿入(POST)と更新(PUT)の要求を送信するときに、フレームワークは具体的なクラスのために< @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電子
GRAVE PUT:経路に関連して[ディスパッチャ] [/アプリ]例外をスローサーブレットためのServlet.serviceを()要求処理が失敗しました。入れ子にされた例外はjava.lang.IllegalStateException:引数型の不一致 HandlerMethod詳細: コントローラ[br.inf ... web.resource.UserWebResource] メソッド[public org.springframework.http.ResponseEntity br.inf ... web .resource.AbstractWebResource.updateAction(java.lang.String、T、javax.servlet.http.HttpSession)]
それが@Cootri編集さAbstractWebResource – Cootri
のあなたの実装を示し、 –