Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同JavaEE容器提供的服务_Java_Jakarta Ee - Fatal编程技术网

不同JavaEE容器提供的服务

不同JavaEE容器提供的服务,java,jakarta-ee,Java,Jakarta Ee,我正在读这本书,我对下图有一个问题。我想我已经在某个地方读到了诸如Web服务之类的服务只在EJB容器中提供,但是从下面的图像(显示每个容器提供的服务:quote book)来看,Web容器似乎也提供了该服务。这是正确的还是我误解了图像和图像文本?如果这是正确的,那么这意味着我可以将我的应用程序打包为WAR并将其部署到Web容器中,并且仍然使用Web服务API 如果我错了,有人会纠正我,但从历史上看,这是另一种方式:它是一种EJB服务,现在可以被注释为@WebService 是的,web和ejb容

我正在读这本书,我对下图有一个问题。我想我已经在某个地方读到了诸如Web服务之类的服务只在EJB容器中提供,但是从下面的图像(显示每个容器提供的服务:quote book)来看,Web容器似乎也提供了该服务。这是正确的还是我误解了图像和图像文本?如果这是正确的,那么这意味着我可以将我的应用程序打包为WAR并将其部署到Web容器中,并且仍然使用Web服务API


如果我错了,有人会纠正我,但从历史上看,这是另一种方式:它是一种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