削除時の Google クラウド エンドポイント HTTP 500 エラー
delete メソッドを含む標準の CRUD メソッドをゲーム化する Google Cloud Endpoint クラスを生成しました。
public Member removeMember(@Named("id") Long id) {
PersistenceManager mgr = getPersistenceManager();
Member member = null;
try {
member = mgr.getObjectById(Member.class, id);
mgr.deletePersistent(member);
} finally {
mgr.close();
}
return member;
}
ただし、DELETE を呼び出すと、HTTP 500 エラーが返されます。
HTTP ERROR 500
Problem accessing /_ah/spi/Members.removeMember. Reason:
com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException: Cannot read fields from a deleted object (through reference chain: com.mylodge.contracts.masonry.Member[\"degree\"])
この HTTP 500 エラーを回避するにはどうすればよいですか?
余談ですが、とにかく削除されたオブジェクトを返すのは非論理的だと思います。HTTP 200 OK の方が適切ではないでしょうか?
更新:代わりに return null を試し、メソッドを VOID にしようとしました。しかし、これらはどちらも次の HTTP 応答を生成します。
500 No content to map to Object due to end of input