开发JAX-RS web服务的常见实践是什么?
我觉得我的建筑有一种味道:
web服务充当代理,从不同的来源收集信息。有RSS提要、SOAP服务和数据库。
我想在我的业务逻辑中抽象出数据源。这就是为什么我想到了这样的东西:
持久层:
| RSS Connector Parser SOAP Interface(s) Entities |
| SomeRssDataDAO SomeSoapDao AnotherSoapDap UserDao ...Dao |
服务层| SomeRssDataService SoapDataService UserFavoritesService |
"资源"层| JerseyResources that map HTTP to service methods |
服务层和持久层都是ejb。
我面临的问题是,我将在持久层有事务。如果一个服务需要使用多个步骤来完成它的工作,那就不合适了。
但是在我的服务层中使用transactions/entitymanager似乎不正确。
怎么走?
我不认为事务由服务层管理有什么问题。这就是决定什么应该是原子的上下文。
您的服务层不需要是ejb,除非您计划分发它们。您可以使用JDO或JPA事务来管理持久性操作。
您的"持久化层"也不需要真的是ejb,除非您计划分发它们。