我正在开发一个企业项目,该项目具有EJB模块和在GlassFish v3.1,Weld v1.1和Jersey上运行的Web项目.在EJB中,我定义了一个实体类Manufacturer并生成了一个会话Facade ManufacturerFacade.
在Web项目中,我希望Manufacturer通过REST 公开实例.为此,我创建了以下资源:
这ManufacturersResource是一个容器资源,它返回存储在数据库中的所有制造商的列表.它通过注入ManufacturerFacade和调用findAll()方法来实现.缩写代码:
@RequestScoped
@Path("/manufacturer")
public class ManufacturersResource {
@Inject
private ManufacturerFacade manufacturerFacade;
@GET
@Produces("application/xml")
public List<Manufacturer> getManufacturers() {
return manufacturerFacade.findAll();
}
}
Run Code Online (Sandbox Code Playgroud)
该资源还有一个子资源:
@Path("{id}")
public ManufacturerResource getManufacturer(@PathParam("id") String id) {
return ManufacturerResource.getInstance(id, manufacturerFacade);
}
Run Code Online (Sandbox Code Playgroud)
该ManufacturerFacade如下外观:
public class ManufacturerResource {
@Inject
private ManufacturerFacade manufacturerFacade;
private long id;
private ManufacturerResource(String id) {
this.id = Long.parseLong(id);
}
public static ManufacturerResource getInstance(String id,) {
return new …Run Code Online (Sandbox Code Playgroud)