我的意思是,是否可以在后端应用程序中使用seam,它只是通过远程EJB或Web服务或MDB或其他任何东西提供功能? (因此没有http会话或请求)。 在这种情况下使用Seam是否有意义?
如果是这样,它是如何推出的?因为在Web上下文中,在文件“web.xml”中声明了一个监听器,在所描述的场景中,Seam在哪里启动了?
答案 0 :(得分:4)
不,SEAM是基于JSP的,需要servlet / JSP引擎和Web容器。这既不可能也不可取。
创建一个独立于用户界面的基于服务的后端确实是一个非常好的主意。您可以使用EJB或Hibernate来实现这一目标。但你不需要SEAM。
答案 1 :(得分:2)
Seam绝对不是基于JSP的。它可以说是以JSF为中心的,但您也可以将Wicket或GWT用于您的用户界面。
一个基于Seam的后端应用程序是可能的,在我看来,如果你计划使用一些Seam功能,如安全性,RESTEasy集成,在Web服务中使用依赖注入的能力和MDB设施,这是非常有意义的。 。
关于第二个问题,即如何启动它,在Seam2中你必须定义一个虚拟战争模块,其中包含启动和关闭所需的过滤器。在Seam3中,基于CDI,您可以避免它。
答案 2 :(得分:1)
在EJB 3世界中,您已经拥有良好的依赖注入机制,事务管理,EJB具有明确定义的生命周期。所以我不认为Seam对EJB非常有用,除非你想将EJB与Web技术混合在一起,比如JSF,Wicket等 - 在这种情况下,你可以从Seam的统一组件模型中受益。你将拥有Seam的DI和资源管理机制,它们将EJB,Servlet,JSF的方法之间的差异抽象出来。
Seam的主要观点是无缝集成不同的(主要是网络)技术。
这就是为什么我认为如果你单独使用EJB没有多大意义。