JAX-RSを使う
JavaEE6でJAX-RSを使う手順のメモ。
JAX-RSで処理するパスのルートを設定
具体的にはjavax.ws.rs.core.Applicationクラスを継承したクラスを作りjavax.ws.rs.ApplicationPathアノテーションを付けます。
以下サンプル。
/** * */ package sandbox.resource; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; /** * @author jabaraster */ @ApplicationPath("rest") public class Resources extends Application { // }
リソースクラスを作る
リソースクラスはjavax.ws.rs.Pathアノテーションを付けるだけです。特に何かのクラスを継承する必要はありません。
またリソースクラスの中でEJBを使う場合はリソースクラス自身にjavax.ejb.Statelessを付けておきます。
あとは必要なメソッドを作っていきます。
以下サンプル。
/** * */ package sandbox.resource; import javax.ejb.EJB; import javax.ejb.Stateless; import javax.ws.rs.Consumes; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import sandbox.dao.EmployeeDao; import sandbox.entity.Employee; import sandbox.entity.EmployeeList; /** * @author jabaraster */ @Path("emp") @Stateless public class EmployeeResource { @EJB EmployeeDao employeeDao; /** * @param pOffset * @param pLimit * @return */ @GET @Path("") @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) public EmployeeList getAll( // @QueryParam("offset") @DefaultValue("0") final int pOffset // , @QueryParam("limit") @DefaultValue("5") final int pLimit // ) { return new EmployeeList(this.employeeDao.getAll(pOffset, pLimit)); } /** * @param pEmployee * @return */ @POST @Path("") @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) @Consumes({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) public Employee insert(final Employee pEmployee) { this.employeeDao.insert(pEmployee); return pEmployee; } }
これだけ。
かんたん。