不同JavaEE容器提供的服务
我正在读这本书,我对下图有一个问题。我想我已经在某个地方读到了诸如Web服务之类的服务只在EJB容器中提供,但是从下面的图像(显示每个容器提供的服务:quote book)来看,Web容器似乎也提供了该服务。这是正确的还是我误解了图像和图像文本?如果这是正确的,那么这意味着我可以将我的应用程序打包为WAR并将其部署到Web容器中,并且仍然使用Web服务API不同JavaEE容器提供的服务,java,jakarta-ee,Java,Jakarta Ee,我正在读这本书,我对下图有一个问题。我想我已经在某个地方读到了诸如Web服务之类的服务只在EJB容器中提供,但是从下面的图像(显示每个容器提供的服务:quote book)来看,Web容器似乎也提供了该服务。这是正确的还是我误解了图像和图像文本?如果这是正确的,那么这意味着我可以将我的应用程序打包为WAR并将其部署到Web容器中,并且仍然使用Web服务API 如果我错了,有人会纠正我,但从历史上看,这是另一种方式:它是一种EJB服务,现在可以被注释为@WebService 是的,web和ejb容
如果我错了,有人会纠正我,但从历史上看,这是另一种方式:它是一种EJB服务,现在可以被注释为
@WebService
是的,web和ejb容器都可以提供web服务。是的,您的web服务可以打包在一场战争中。正如Osw已经指出的,这些概念正在融合在一起 在EAR应用程序中,可以有单独的web和EJB模块。EJB模块传统上专注于业务逻辑,可通过本地或远程(RPC/RMI)调用访问。由于web服务的一种用法是RPC,因此为这些技术提供EJB模块支持是有意义的。从纯技术的角度来看,它基本上只是另一个做RPC的协议 然而,web模块和web服务的概念自然也会重叠,因此web模块当然也支持这种技术(至少不是因为web服务不仅仅是RPC) 进一步模糊的是,ejbbean曾经专用于放入EJB模块,但现在也可以在web模块中使用 Java EE的未来版本可能会更加模糊界线,因为现在作为EJB bean属性的许多容器服务(如事务、池等)将与它们分离,并通过CDI注释提供,因此它们可以直接应用于所有“web组件” 这样,web模块实际上是EJB模块的超集
EJB模块的功能仍然是,它允许您在web层下拥有一层通过类装入器隔离的功能。这意味着web模块可以引用您在EJB模块中定义的类,但不能反过来引用。此外,像Servlet、JSP和JSF这样的纯表示技术在EJB模块中不可用,而且目前根本没有计划让这些技术在EJB模块中也可用。缓存、池、命名、生命周期管理和RMI