Java Web服务vs JAR——一种方法比另一种好吗?

Java Web服务vs JAR——一种方法比另一种好吗?,java,web-services,web-applications,Java,Web Services,Web Applications,我们的容器(Tomcat)上有多个互不交互的web应用程序,但它们共享相同的数据模型。一些基本的数据访问操作在多个web应用程序中使用,当然我们不希望在多个web应用程序之间重复相同的代码 对于这种情况,构建一个库来提供公共函数还是将函数公开为web服务更好 有了这个库,用户将必须提供数据源来访问数据库,而web服务将是自包含的,并且有自己的日志记录 我的问题与类似,但性能不是问题-我认为在同一容器上使用web服务将远远满足我们的需要。我很想知道是否有一个标准的方法来解决这个问题,如果一个方法比

我们的容器(Tomcat)上有多个互不交互的web应用程序,但它们共享相同的数据模型。一些基本的数据访问操作在多个web应用程序中使用,当然我们不希望在多个web应用程序之间重复相同的代码

对于这种情况,构建一个库来提供公共函数还是将函数公开为web服务更好

有了这个库,用户将必须提供数据源来访问数据库,而web服务将是自包含的,并且有自己的日志记录

我的问题与类似,但性能不是问题-我认为在同一容器上使用web服务将远远满足我们的需要。我很想知道是否有一个标准的方法来解决这个问题,如果一个方法比另一个更好-我肯定我没有考虑所有的因素


谢谢。

我会把它们变成图书馆。这将减少网络流量对性能的影响,并且通常会使访问应用程序更容易(因为您的库不能像Web服务器一样“宕机”)。如果使用此库的应用程序不需要网络连接,则可以完全解除网络连接限制


如果你认为你想把这个库的一些功能暴露给你的用户,你应该考虑在这个库周围建立一个WebService。

如果它只是一个模型,它有一些非持久性操作(非副作用计算等),我会使用JAR库。如果它更像一个服务(DB/Network/…operations),我将创建一个单独的webservice。如果您有强烈的性能要求,本地库是唯一的解决方案。


您还可以使用接口来实现它,并在明确了要使用什么时更改实现。

Webservice肯定会在cpu和代码库方面分担自己的开销。如果不在每个项目中复制相同的jar,则可以考虑将其移动到服务器LIB,以便一旦更新,每个WebApp都会得到更改。但是这种方法也有一个主要缺点,假设您在模型jar中进行一些不向后兼容的更改,并更新一个webapp以使用较新的模型,那么您肯定必须更新所有其他webapp以适应在公共jar中所做的更改。不能从同一服务器库运行多个版本。您可以在每个Web应用程序中打包相应版本的common jar,但即使是对common(model)jar的一个小改动,您也必须重新打包并部署所有Web应用程序。

这个问题解决了相同的问题。。。谢谢-我在最初的搜索中没有发现这个问题。+1-很容易在以后把它变成一个web服务。是否公开为web服务取决于组织和运营约束和目标。虽然这是事实,但OP规定性能不是一个问题。考虑到这个项目的历史,我还是倾向于web服务。对另一个问题的回答与您的回答相同: