Jsf 如果我在应用程序中使用JBoss seam,是否需要使用MyFaces?

Jsf 如果我在应用程序中使用JBoss seam,是否需要使用MyFaces?,jsf,myfaces,jboss-seam,Jsf,Myfaces,Jboss Seam,我们有一个使用Seam的基于JSF的遗留web应用程序。它部署在WebSphere7.0上。它的/WEB-INF/lib中没有MyFaces JAR,只有Seam JAR 那么,应用程序如何获得JSF JAR呢?JSF在这个应用程序中究竟是如何工作的?JSF是Java EE规范的一部分,已经捆绑在符合Java EE的应用程序服务器中,如Glassfish、JBoss as、Websphere和Weblogic。您不需要将其捆绑到您的webapp中 您可能会感到困惑,因为您也曾经使用过像Tomca

我们有一个使用Seam的基于JSF的遗留web应用程序。它部署在WebSphere7.0上。它的
/WEB-INF/lib
中没有MyFaces JAR,只有Seam JAR


那么,应用程序如何获得JSF JAR呢?JSF在这个应用程序中究竟是如何工作的?

JSF是Java EE规范的一部分,已经捆绑在符合Java EE的应用程序服务器中,如Glassfish、JBoss as、Websphere和Weblogic。您不需要将其捆绑到您的webapp中

您可能会感到困惑,因为您也曾经使用过像Tomcat或Jetty这样的基本JSP/Servlet容器,并且体验过需要手动提供JSF库。这是事实,基本的JSP/Servlet容器只附带JSP/Servlet(和EL)库,而不附带JSF、EJB、JPA等其他JavaEE构件。这就是为什么你需要把它和你自己的webapp捆绑在一起

因此,具体地回答您的问题:不,如果JSF已经绑定到目标服务器,那么您不需要将它绑定到您的webapp中


请注意,这完全与JSF实现无关(您明确提到了MyFaces,而问题/答案同样适用于其他JSF实现,如Mojarra).

Wepshere 7有自己的类加载器和注入提供程序,配置用于Servlet 2.5和JSF 1.2实现,该实现捆绑在应用服务器的公共libs目录中。仅仅将MyFaces JAR添加到WEB-INF\lib可能不会起作用。查看此链接:@Ivaylo:请停止将库/框架/API等非代码名称格式化为代码。它们不是代码!谢谢你的回答。那么就澄清一下JBossSeam与JSF无关?因此,使用或不使用jboss seam,应用程序将需要JSF JAR,要么在websphere(bundeled)中,要么在web应用程序libs?seam中的某个第三方实现中,要么在Java EE中。它只是JSF的一个扩展,因此它确实需要JSF。但是,如果服务器已经提供了JSF库,那么您不需要自己提供JSF库。我们现有的遗留应用程序的EAR在应用程序本身中没有任何JSF jar(尽管它有JSF-facelets.jar)。它也有一些接缝罐。这意味着它将使用捆绑在websphere中的jsf。是的,正如所回答的,jsf已经捆绑在符合JavaEE的应用服务器中。注意,JSF库绝对不属于EAR。如果webapp需要捆绑JSF,那么它们就属于WAR(反过来可以放在EAR中)。但是生成EAR的ant脚本并没有在战争中添加这些JAR(捆绑在EAR中)。