我正在使用Omnifaces 1.3 + Primefaces 3.4.1 + Jboss 7.1.1 Final但我只是无法通过ajax请求来重定向FullAjaxExceptionHandler
我配置的异常web.xml
.什么都没发生,只是另一个例外:
19:38:05,467 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/taxMileage].[Faces Servlet]] (http--0.0.0.0-8181-4) Servlet.service() for servlet Faces Servlet threw exception: java.lang.AbstractMethodError: org.apache.xerces.dom.ElementImpl.getTextContent()Ljava/lang/String;
at org.omnifaces.config.WebXml.parseErrorPageLocations(WebXml.java:216) [omnifaces-1.3.jar:1.3]
at org.omnifaces.config.WebXml.<init>(WebXml.java:84) [omnifaces-1.3.jar:1.3]
at org.omnifaces.config.WebXml.<clinit>(WebXml.java:53) [omnifaces-1.3.jar:1.3]
at org.omnifaces.exceptionhandler.FullAjaxExceptionHandler.handleAjaxException(FullAjaxExceptionHandler.java:162) [omnifaces-1.3.jar:1.3]
at org.omnifaces.exceptionhandler.FullAjaxExceptionHandler.handle(FullAjaxExceptionHandler.java:145) [omnifaces-1.3.jar:1.3]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.7-jbossorg-2.jar:]
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个关于此的提示吗?我被卡住了.如果我在没有ajax的情况下调用相同的错误,则会正确地重定向异常.
我的web.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"
>
<display-name>taxMileage</display-name>
<welcome-file-list>
<welcome-file>/pages/protected/user/dashboard.xhtml</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>InitializeApplication</servlet-name>
<servlet-class>com.taxMileage.server.util.InitializeApplication</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param> …
Run Code Online (Sandbox Code Playgroud) 我打算将Web应用程序从使用JSF托管bean转换为使用CDI托管bean.我知道我需要在下面做:
是这一切都需要做吗?我需要注意哪些问题?
我需要知道使用OmniFaces的好处与我目前使用的PrimeFaces相比.OmniFaces提供的PrimeFaces没有哪些功能?
我正在使用Omnifaces 1.8.1,每当我将我的应用程序部署到Glassfish时,我都会收到以下警告,这会导致部署过程出现延迟.
Warning: WELD-001519 An InjectionTarget implementation is created for an abstract class org.omnifaces.eventlistener.DefaultHttpSessionListener. It will not be possible to produce instances of this type!
Warning: WELD-001519 An InjectionTarget implementation is created for an abstract class org.omnifaces.eventlistener.DefaultServletContextListener. It will not be possible to produce instances of this type!
Warning: WELD-001519 An InjectionTarget implementation is created for an abstract class org.omnifaces.eventlistener.DefaultServletRequestListener. It will not be possible to produce instances of this type!
Warning: WELD-001519 An InjectionTarget implementation is created for an …
Run Code Online (Sandbox Code Playgroud) 前几天发生了一件非常奇怪和令人尴尬的事情,我没有言语来形容发生的事情.
我的应用程序在Tomcat 7上运行与JSF 2.1,Hibernate 4,Spring Security集成的Spring 3.我通过电话与C级别的重要人员同时在同一页面上同时处于测试环境中.当他的页面出现我的个人帐户详细信息时,他开始导航到我正在浏览的页面.我不相信他,所以我走到他的办公室,果然,他不知何故登录了我的帐户,他没有密码.
该应用程序将保护患者的健康信息,因此我被命令向C级提供已发生事件的完整报告,但我无法确定这是如何实现的.我搜索了代码库,没有得到什么.我试图在多个场合重现确切的场景,但从未能够重现它.我甚至没有一个受过教育的猜测,我很满意.
我想也许在Tomcat应用程序上下文实现中存储的会话上可能存在一些不安全的线程操作,但如果它不可重现,我无法证明这一点.我还认为,由于Spring Security在其他请求和转发之前作为过滤器运行,可能其中一个servlet过滤器受到干扰.另外两个是我最近添加的Primefaces文件上传过滤器和Omnifaces SEO过滤器.
Omnifaces过滤器实际上干扰了Primefaces文件上传过滤器,我不得不修改它的配置,所以它们中的两个会很好地相互配合,所以我仍然觉得这也许是可能的.
Spring Security是否存在导致类似问题的已知错误?Tomcat是否存在与ApplicationContext意外服务错误会话状态有关的已知问题?是否有其他人遇到过类似的问题或对此有一些独特的见解?
编辑:发布后不久我发现了这个,仅在几天前发布:
会话混淆 - apache httpd与mod_jk,tomcat,spring security - 提供其他用户的数据
这几乎与我在Tomcat面前拥有Apache httpd + mod_jk插件的设置完全一样,所以我肯定不是疯了:)
更新:
我能够在没有mod_jk或Apache的情况下在我的开发环境中重现这个问题,所以我可以可靠地将其排除在外作为罪魁祸首.
tomcat hibernate spring-security session-hijacking omnifaces
所以在面对可怕的事情后javax.faces.application.ViewExpiredException
,我不得不环顾互联网寻找合适的解决方案.幸运的是,解决方案随时可用,我继续采用OmniFaces FullAjaxExceptionHandler.
足够说,就像OmniFaces的几乎所有东西一样,它创造了奇迹.但是,每当我有一个视图到期时,我会得到:
SEVERE: WebModule[/myModule]FullAjaxExceptionHandler: An exception occurred during processing JSF ajax request. Error page '/WEB-INF/errorpages/test.xhtml' will be shown.
javax.faces.application.ViewExpiredException: viewId:/my/page.xhtml - View /my/page.xhtml could not be restored.
...
Run Code Online (Sandbox Code Playgroud)
这很好,因为它是按预期处理的,但无论如何要将这个异常打印到server.log?这会快速占用日志.
我正在运行:
Mojarra 2.1.23
PrimeFaces 4.0-SNAPSHOT
OmniFaces 1.6-SNAPSHOT-2013-07-01
在
Glassfish 3.1.2.2上
是否可以使用jsf消息包覆盖默认的omnifaces验证消息?
我的消息包:
javax.faces.converter.DateTimeConverter.DATE={2}: ''{0}'' could not be understood as a date.
javax.faces.converter.DateTimeConverter.DATE_detail=Invalid date format.
javax.faces.validator.LengthValidator.MINIMUM=Minimum length of ''{0}'' is required.
org.omnifaces.component.validator.ValidateUnique=1. my validateUnique omnifaces msg, {0}
org.omnifaces.component.validator.ValidateUnique.DEFAULT_MESSAGE=2. my validateUnique omnifaces msg, {0}
Run Code Online (Sandbox Code Playgroud)
我知道有一个'消息'属性,但将所有消息放在一个地方会很好.
提前谢谢了
我收到以下错误
"java.util.ServiceConfigurationError:javax.servlet.ServletContainerInitializer:Provider org.omnifaces.ApplicationInitializer not found"
在运行Arquillian测试时.
我已经把最基本的测试用例放在这里:https://www.dropbox.com/s/kou5v8kqs5g4g4m/test.zip?dl = 0
我找到了一些关于将JSF技术与Spring Boot集成的教程,但是让OmniFaces使用Spring Boot似乎是一项相当复杂的工作.将这两者结合在一起是一个好主意吗?
omnifaces ×10
jsf ×7
cdi ×2
glassfish ×2
java ×2
jsf-2 ×2
ajax ×1
hibernate ×1
integration ×1
jboss ×1
jsf-2.2 ×1
managed-bean ×1
migration ×1
primefaces ×1
spring-boot ×1
tomcat ×1
validation ×1
view-scope ×1
weld ×1