自从一个月前我真的很难学习宁静的web服务。 现在我已经练习了语法,并且理解了这些概念,我决定创建一个包含EJB,JPA和REST的非常简单的企业应用程序。 我正在努力尝试了解组织这种系统的最佳方式。如果有人在该领域有经验可以给我一些关于什么是最佳实践的提示,那么我很感激,我该如何解决我目前的问题。应该如何组织提供REST Web服务的JEE6企业应用程序?
让我告诉你这张图片。对不起,我不能得到更好的分辨率(使用Ctrl +鼠标向上滚动放大):
正如你可以看到这是一个非常简单的应用程序的企业,有2个模块。
此应用程序不使用CDI(我要实现我的目标没有CDI的帮助和)
当某些客户端(任何可互操作的客户端)发送一个@GET一些参数的REST服务应该通过这些参数到EJB模块,它将在数据库中搜索并发回相应的数据。最后,服务将在JAXB的帮助下自动编组,并将.XML发送回客户端。
我的问题有以下几点:
- 我得到一个ClassCastException,因为在该实体EJB模块中不与JAXB类兼容的WebModule(即使它们的变量都相同)
- 我不知道应该怎么组织,所以前端可以编组和解组这些实体。
- 也许实体类可能在前端与JAXB映射相结合?如果那样的话,EJB模块将不再需要。但事情是,我想要EJB模块,因为我经常在那里做我的CRUD操作。
- 如何将EJB公开为REST Web服务(制作混合)?你认为这是一个好主意吗?它如何帮助我?
- 同样,如果我在Web模块中创建JAXRS + EJB的混合,我将必须在前端创建我的JPA实体,这是我以前从未做过的事情。你认为这是一个好习惯吗?
- 你有什么建议?通常使用REST Web服务的企业应用程序的组织方式是什么?
我喜欢这个主意,因为你使用的是混合方法听起来很有趣。如果我理解的很好,你说我应该将实体(当前在EJB模块中)的映射添加到web.xml中,而不是使用注释,对吧? 但是EJB模块呢?你能用一个如何做这些映射和在哪个文件中的例子来更新你的问题吗?我有点困惑。 – sfrj 2012-04-05 18:58:49
@sfrj - JPA元数据将放入从'persistence.xml'文件引用的文件中。 – 2012-04-05 19:13:35
Tnx这个答案是非常有用的。 – sfrj 2012-04-09 09:54:41