我正在使用Eclipse Neon和Maven进行开发。有两个主要项目。项目1包含所有Web服务,包括SOAP和RESTful。它还实现了所有数据库访问。项目2包含UI,它是一个Angular实现。 Angular UI利用项目1的RESTful服务进行所有数据访问。应用程序打包到包含两个项目的WAR文件的EAR文件中。 (这不是我的设计!!!)
UI应用程序中有一些处理授权问题的Servlet类。到目前为止,每个WAR文件中的类都是完全独立的。现在我需要从其中一个servlet类访问数据库表中的数据。由于该功能已经在项目1中,我应该能够简单地利用项目2中的类。
在Eclipse中,我在我的工作区中有两个项目,并将Project 1添加到Project 2的构建路径中,因此我可以根据需要将正确的对象添加到Project 2.但是,当我尝试构建Project 2时,它可以&#39 ;找到项目1中的类。我尝试将项目1添加到项目2的导出列表中,但没有区别。
我可以提供必要的pom文件。
我只是不知道该尝试什么。
答案 0 :(得分:0)
在两个应用程序中共享这些数据库访问功能的一种方法就是将它们打包为EAR中的公共库。
只有一句话,IMO让多个应用程序访问/修改相同的数据模型并不是一个好的模式。 有问题,请参阅this answer“使用一个数据库的多个应用程序?”详情。
所以也许你应该考虑在现有的第一次战争(包含REST和SOAP服务)中保持这个数据模型访问逻辑,并让你的第二个应用程序后端从你的第一个应用程序中消耗一个新服务?
另一个选择是将所有这些webapps打包成一个(所以一场战争),提供UI和后端功能(你的servlet和API在一起)。
编辑:我无法判断这个应用程序设计,因为我无法看到它。正如@David所指出的,通常情况下,将多个具有不同用途的Web应用程序打包为EAR并不是一个糟糕的模式,如果这些API是针对不同类型的客户端(UI,后端等等)制作的,则更是如此。