JSF2.0Ajax调用失败
我正在做一个项目,使用JSF1.2、JSP、Struts、Tiles、Richfaces。。。为了简单地使用JSF2.0,内置的facelets支持将Richfaces更新到版本4 到目前为止,除了一个主要的障碍外,一切都进行得很顺利。我正在尝试更新以前使用JSF2.0Ajax调用失败,ajax,jsf,facelets,Ajax,Jsf,Facelets,我正在做一个项目,使用JSF1.2、JSP、Struts、Tiles、Richfaces。。。为了简单地使用JSF2.0,内置的facelets支持将Richfaces更新到版本4 到目前为止,除了一个主要的障碍外,一切都进行得很顺利。我正在尝试更新以前使用 NPNSessionFilter.java的doFilter函数: 我根据建议为BalusC创建的测试页: 编辑4: http://tinypic.com/r/16jet7s/7 下面是当前打包在WAR的WEB-INF/lib文件夹中
NPNSessionFilter.java的doFilter函数:
我根据建议为BalusC创建的测试页:
编辑4:
http://tinypic.com/r/16jet7s/7
下面是当前打包在WAR的WEB-INF/lib文件夹中的lib的图像。以前的程序员包含了很多我还没有清理掉的垃圾。同样,也不确定struts jar来自何处。删除了我能找到的任何与strusts或tiles有关的dist前罐子
编辑5:
好的,突破!这一评论带来了巨大的不同,“同样,也不确定struts JAR来自何处。删除了我能找到的与struts或tiles相关的任何dist前JAR。”
清洁耳朵,重新洗耳恭听,现在一切都好起来了。显然,这不仅仅是我忘记移除的某个lib,而是我忘记移除的一个lib,然后在移除后清理耳朵。AJAX请求现在已经正常通过了,我可以在调试器中看到,当请求通过时,值被重新绑定!其他问题很多,但我可以在自己的时间内处理这些问题。巴卢斯,你引导我找到了这个解决方案;如果你想提交答案,我很乐意接受
com.sun.faces.context.PartialViewContextImpl:PartialViewContextImpl.java:createPartialResponseWriter:441上的NullPointerException
此异常表示JSF视图根为空,这反过来表明类路径中存在一些JSF 1.2目标第三方或自定义的ViewHandler
,它们对JSF 2.0的工作不完全正确,因此也需要升级(或完全删除)
根据您对所有JAR的概述截图,struts faces
JAR是主要嫌疑犯。但是那些ApacheCommons和JSTL库的混合版本看起来也不对
com.sun.faces.context.PartialViewContextImpl:PartialViewContextImpl.java:createPartialResponseWriter:441上的NullPointerException
此异常表示JSF视图根为空,这反过来表明类路径中存在一些JSF 1.2目标第三方或自定义的ViewHandler
,它们对JSF 2.0的工作不完全正确,因此也需要升级(或完全删除)
根据您对所有JAR的概述截图,struts faces
JAR是主要嫌疑犯。但是那些Apache Commons和JSTL库的混合版本看起来也不太合适。提到确切的Mojarra版本和完整的stacktrace可能会有所帮助。当您使用一个非常简单的ajax表单(如
)创建一个极简页面而没有支持bean时,是否也会发生此错误?@BalusC尽可能更新得最好。将以最少的页面返回给您。@BalusC:现在更新了您要求的大部分详细信息。嗯,这是一个奇怪的跟踪。行号在哪里?发生此异常的行号非常重要。无论如何,在看过Mojarra 2.1.1的源代码之后,我最好的猜测是442行。NPNSessionFilter
到底在做什么?当您测试最小代码示例时,是否将所有的Tile/richfaces/struts标记都保留在Facelets页面上?@BalusC:使用pastebins更新到相关的NPNSessionFilter代码、更新的堆栈跟踪(带行号)和测试页面标记。此外,NPNSessionFilter的主要目的是在每个请求上运行一些自定义访问控制代码,但它往往会捕获应用程序中发生的任何恶意错误,因此我能够在那里捕获错误。同样仅供参考,我尝试更新到Mojarra 2.1.2,但没有改变AFAICT。此外,再次尝试测试页面,但没有参考richfaces、tomahawk或trinidad。不过,同样的结果。提及准确的Mojarra版本和完整的stacktrace可能会有所帮助。当您使用一个非常简单的ajax表单(如
)创建一个极简页面而没有支持bean时,是否也会发生此错误?@BalusC尽可能更新得最好。将以最少的页面返回给您。@BalusC:现在更新了您要求的大部分详细信息。嗯,这是一个奇怪的跟踪。行号在哪里?发生此异常的行号非常重要。无论如何,在看过Mojarra 2.1.1的源代码之后,我最好的猜测是442行。NPNSessionFilter
到底在做什么?当您测试最小代码示例时,是否将所有的Tile/richfaces/struts标记都保留在Facelets页面上?@BalusC:使用pastebins更新到相关的NPNSessionFilter代码、更新的堆栈跟踪(带行号)和测试页面标记。此外,NPNSessionFilter的主要目的是在每个请求上运行一些自定义访问控制代码,但它往往会捕获应用程序中发生的任何恶意错误,因此我能够在那里捕获错误。同样仅供参考,我尝试更新到Mojarra 2.1.2,但没有改变AFAICT。此外,再次尝试测试页面,但没有参考richfaces、tomahawk或trinidad。但是,同样的结果。除了@BalusC关于删除不需要的库的观点外,这里的另一个教训是,在对支持库进行重大更改时,确保在构建项目的基础框架之前清理项目。否则,这些不需要的项目可能会像我一样挥之不去,引起头痛。除了@BalusC关于删除不需要的库的观点外,这里的另一个教训是,在构建项目的基础框架,即支持库进行重大更改时,确保在构建之前清理项目。否则,那些不需要的项目可能会拖延
<h:selectOneMenu
value="#{userSession.selectedNetwork}"
id="network"
>
<f:selectItems value="#{userSession.networkUIOptions}" />
<f:ajax event="change" render="selectedStation edit_site_button add_site_button"/>
</h:selectOneMenu>