Spring 从一个罐子里吃掉小脸蛋会导致我的战争,去解释“你是谁?”;JSF视图ID“;作为.jsp而不是.jsf

Spring 从一个罐子里吃掉小脸蛋会导致我的战争,去解释“你是谁?”;JSF视图ID“;作为.jsp而不是.jsf,spring,jsf,spring-security,Spring,Jsf,Spring Security,我担心这个问题可能不像StackOverflow问题那样“封闭”。但愿我错了 上下文 我们有一个项目(带有JSFWebGUI的典型JavaEE),由于需求的特殊性,我们需要将其分为两个项目。其中一个新的拆分项目是前一个项目的子集,有一些细微的区别 所以,从我们创建的最初的_JAVAEE _WEBAPP.war:最初的_JAVAEE _WEBAPP-Proj01.war和最初的_JAVAEE _WEBAPP-Proj02.war 为了避免冗余,我们决定创建一个包含所有Facelet、托管bean和

我担心这个问题可能不像StackOverflow问题那样“封闭”。但愿我错了

上下文
我们有一个项目(带有JSFWebGUI的典型JavaEE),由于需求的特殊性,我们需要将其分为两个项目。其中一个新的拆分项目是前一个项目的子集,有一些细微的区别

所以,从我们创建的最初的_JAVAEE _WEBAPP.war:最初的_JAVAEE _WEBAPP-Proj01.war和最初的_JAVAEE _WEBAPP-Proj02.war

为了避免冗余,我们决定创建一个包含所有Facelet、托管bean和相关POJO的JAR文件。我们的想法是,每一场战争都会包括这个罐子,使用他们需要的任何东西,然后,战争会有特定的页面,标识

问题
我创建了一个简单的示例来练习使用一个带有facelet的JAR文件和两个包含并使用这些facelet的WAR文件。在这个例子中,一切都完美无缺

然而,“现实世界”并不是那么简单。我们的项目还依赖于Primefaces、SpringCore和SpringSecurity,仅举几个例子

实现还没有完成——远未完成。现在,在同一个Maven项目下,我创建了JAR模块,将bean和facelet移动到该模块,并将其作为依赖项包含在WAR文件模块中

问题是,现在,我的“FacesContext.getViewRoot().getViewId()”告诉我viewId是“someName.jsp”而不是“someName.jsf”。这个简单的更改会弄乱我们的“传统”身份验证阶段侦听器(确保用户登录并相应重定向的阶段侦听器)实现

那么,这里会发生什么?你们中有人知道我下一步可能采取什么措施来跟踪这个问题的根源吗


感谢和问候。

这可能是为FacesContext注册的JSF ViewHandler的问题。您使用的是什么版本的JSF,JSF上下文xml中是否定义了任何视图处理程序。 另外,请在web.xml中检查上下文参数:javax.faces.DEFAULT\u后缀,javax.faces.FACELETS\u VIEW\u映射