Architecture EAR与多个WAR或与远程EJB的WAR

Architecture EAR与多个WAR或与远程EJB的WAR,architecture,ejb,war,ear,Architecture,Ejb,War,Ear,我想弄清楚这件事已经有一段时间了,我决定征求你的意见 我正在构建几个共享一组公共数据和操作的应用程序。每个应用程序都有特定的数据要添加,但需要对特定应用程序以“基本”或“固定”web应用程序的形式提供的共享数据进行鸟瞰。特定应用程序的数量可能超过20个,其中一些只是暂时的,比如4-6个月 当我刚开始这个项目时,在JavaEE中我创建了一个EAR,将共享的JPA实体和EJB放在EJB项目中,并添加了WAR。我使用继承为每个应用程序添加特定数据。我很快就遇到了麻烦,因为我无法继承实体来处理不同的EJ

我想弄清楚这件事已经有一段时间了,我决定征求你的意见

我正在构建几个共享一组公共数据和操作的应用程序。每个应用程序都有特定的数据要添加,但需要对特定应用程序以“基本”或“固定”web应用程序的形式提供的共享数据进行鸟瞰。特定应用程序的数量可能超过20个,其中一些只是暂时的,比如4-6个月

当我刚开始这个项目时,在JavaEE中我创建了一个EAR,将共享的JPA实体和EJB放在EJB项目中,并添加了WAR。我使用继承为每个应用程序添加特定数据。我很快就遇到了麻烦,因为我无法继承实体来处理不同的EJB项目,所以我最终得到了一个包含所有实体的大型EJB项目和一个表名前缀为识别应用程序的字符串的数据库:这种情况我不喜欢。此外,项目越大,错误消息在开发过程中变得越奇怪,必须删除所有的build和dist dir,从头开始重新构建所有内容,这让NetBeans 7感到厌烦

因此,随着时间的推移,我决定放弃EAR和继承,转而使用单独的WAR,并使用远程EJB来管理共享数据。耦合web应用->鸟瞰视图是通过本地EJB调用远程EJB并将共享数据添加到本地定义的实体来实现的,因此无论出于何种目的,共享数据看起来都是本地实体的一部分。我对它不太满意,因为出于某种原因,它的定义似乎过于松散,而且还有一个问题,那就是对性能的额外惩罚,目前还不算太糟糕,但这可能是及时的

我可以将两者结合起来,回到EAR,将远程EJB切换到本地EJB,但放弃继承,然后又回到不稳定的开发环境。此外,其中一个应用程序中的一个小更改意味着必须部署所有内容。不知何故,我认为这有一天会带来麻烦,例如,当时不是破坏1个而是破坏20多个应用程序

你会怎么做,为什么?是否有人有过类似规模项目的经验,以及在开发过程中是如何进行的,即在项目发展过程中遇到过任何问题

谢谢

大声思考

不要放弃遗产。使用它,但不要只是使用实体EJB POJO打包在一个单独的jar文件中。有你所有的EJB吗 部署在单独的大型EJB项目中。 让这些EJB公开RESTFul WS

Webapps对EJB项目进行REST调用。EJB 实体提取数据,填充POJO并将其转换为JSONor XML 并将其发送到WebApp

WebApp使用 序列化JSON对象并在WebApp中使用它。这些pojo很好 数据传输对象的类型


您应该能够继承实体,以便在不同的实体EJB项目上工作。不明白你遇到了什么麻烦?我遇到了和post一样的问题谢谢你的回答。我一直在考虑使用WS或RS,但决定不使用,因为使用远程EJB基本上可以以更少的开销和更“自然”的编程方案实现相同的功能。您的意思是让特定于应用程序的实体使用在同一个EJB项目中定义的继承吗?