首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Grizzly/JAX创建DAO/Service层

如何使用Grizzly/JAX创建DAO/Service层
EN

Stack Overflow用户
提问于 2013-02-14 14:55:00
回答 1查看 905关注 0票数 0

在这个JAX应用程序中,我使用的是灰熊而不是玻璃鱼。我对这项技术很陌生,所以我一直在谷歌搜索,似乎找不到一个很好的轮廓,如何在我的应用程序中设置一个服务/DAO层。

下面是我的工作原型。

我的资源

代码语言:javascript
复制
@Path("/helloworld")
@Stateless
public class MyResource {

    @EJB //DOESN'T WORK - how do I map this service to this resource?
    WorkflowService workflowService;

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String TestRequest() {
        Workflow workflow = new Workflow();
        workflow.setName("test");

        workflowService.save(workflow);

        return "Workflow ID:";
    }
}

My Dao

代码语言:javascript
复制
public class WorkflowDao {

    @PersistenceContext(unitName = "unit")
    private EntityManager entityManager;

    public int save(Workflow workflow) {
        entityManager.persist(workflow);
        return workflow.getId();
    }
}

My Service

代码语言:javascript
复制
@Stateless
public class WorkflowService {

    @EJB //I know EJB is probably wrong here, not sure what else to do yet.
    WorkflowDao workflowDao;

    public int save(Workflow workflow) {
        int id = workflowDao.save(workflow);
        return id;
    }
}

更新--我意识到不会与我的设置一起工作。所以我的问题是,什么是?如何使资源中的服务可访问?

资源

代码语言:javascript
复制
@Path("/helloworld")
public class MyResource {

    WorkflowService workflowService;

    public MyResource() {
        workflowService = new WorkflowService();
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String TestRequest() {
        Workflow workflow = new Workflow();
        workflow.setName("test");

        workflowService.save(workflow);

        return "Workflow ID:";
    }
}

服务

代码语言:javascript
复制
public class WorkflowService {

    WorkflowDao workflowDao;

    public WorkflowService() {
        workflowDao = new WorkflowDao();
    }

    public int save(Workflow workflow) {
        int id = workflowDao.save(workflow);
        return id;
    }
}

DAO

代码语言:javascript
复制
@Singleton
public class WorkflowDao {

    private EntityManager entityManager;

    public int save(Workflow workflow) {
        getEntityManager().persist(workflow);
        return workflow.getId();
    }

    protected EntityManager getEntityManager() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("unit");
        EntityManager em = emf.createEntityManager();
        return em;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 14:59:58

我不能完全回答你的问题。但是我可以告诉您,@EJB是JavaEE 6的一部分,它只能在WebApplication服务器上运行。

灰熊不是其中之一(相比之下,玻璃鱼是其中之一)。

编辑

如果希望使用依赖项注入,可以使用Spring框架。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14877553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档