@PUT
メソッドを宣言する抽象クラスがあります。
public abstract class BaseResource<T> {
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public abstract Response create(T entityClass);
}
次に、クラスがメソッドを実装します。
public class GroupsResource extends BaseResource<Group> {
@Override
public Response create(Group newGroup) {
// this works.
// ...
return response.build();
}
}
GET メソッドを使用した同様のコードは機能しますが、これは405 Method Not Allowedで拒否されます。しかし、実装に注釈を付けると、@PUT
機能します。ということで、abstract宣言の@PUTアノテーションが継承されていないようです。
何かご意見は?
アップデート:
私はJava EE7でゼロから始めましたが、これはうまく機能します。