我使用Omnifaces 1.3 + Primefaces 3.4.1 +
7.1.1的Jboss决赛,但我不能重定向与例外FullAjaxExceptionHandler
对我的配置web.xml
,当他们通过Ajax请求。什么也没发生,只是另一个例外:
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:]
有人可以给我小费吗?我被卡住了。如果我在没有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>
<param-name>primefaces.THEME</param-name>
<param-value>south-street</param-value>
</context-param>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter>
<filter-name>facesExceptionFilter</filter-name>
<filter-class>org.omnifaces.filter.FacesExceptionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>facesExceptionFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<!-- -->
<!-- Protected area definition -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted Area - ADMIN Only</web-resource-name>
<url-pattern>/pages/protected/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ADMIN</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted Area - USER and ADMIN</web-resource-name>
<url-pattern>/pages/protected/user/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>USER</role-name>
<role-name>ADMIN</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Secured resources</web-resource-name>
<url-pattern>/rest/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- Login page -->
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/pages/public/login.xhtml</form-login-page>
<form-error-page>/pages/public/loginError.xhtml</form-error-page>
</form-login-config>
</login-config>
<!-- System roles -->
<security-role>
<role-name>ADMIN</role-name>
</security-role>
<security-role>
<role-name>USER</role-name>
</security-role>
<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>/pages/error/error1.xhtml</location>
</error-page>
</web-app>
我的faces-config.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
version="2.1">
<lifecycle>
<phase-listener>com.taxMileage.server.util.MultiPageMessagesSupport</phase-listener>
</lifecycle>
<factory>
<exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory>
</factory>
<application>
<resource-bundle>
<base-name>messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
</faces-config>
谢谢!
java.lang.AbstractMethodError:org.apache.xerces.dom.ElementImpl.getTextContent()Ljava
/ lang / String;
当您的WAR /WEB-INF/lib
(甚至JRE /lib
)中存在Xerces
JAR文件时,就会发生这种情况,该文件的版本比servlet容器内部使用的版本更旧。显然实现Java
1.4.2或更早版本的JAXP的较旧版本缺少Java
1.5的
JAXP中引入的上述方法。
有2个选项:
将Xerces JAR文件升级到至少与使用servlet容器的版本匹配的较新版本。
从中删除那些Xerces JAR文件/WEB-INF/lib
。他们实际上不属于那里。servletcontainer带有自己的JAXP实现。您无需通过网络应用程序提供自己的内容。
建议使用选项2。使用诸如Maven之类的依赖项管理框架时要当心。即使该API已经是Java
SE的一部分,某些较差的库也会特别将JAXP实现作为传递依赖项包括在内。
请注意,具体问题与OmniFaces无关。这只是由类路径污染引起的。OmniFaces使用JAXP解析web.xml
(和web- fragment.xml
)并提取错误页面位置。 更新 :自OmniFaces 2.0以来,不再存在此 特定
异常,因为它已按照问题90替换getTextContent()
为getFirstChild().getNodeValue()
。
除了这个错误之外,我似乎在依赖项方面有很多问题,我正在试图修复它们,但我对Maven来说是一个完全的新手: 罐子未加载。参见Servlet规范2.3,第9.7.2节。违规类:javax/el/expression.class> 罐子未加载。参见Servlet规范2.3,第9.7.2节。违规类:javax/el/expression.class> null null null null null 我
线程“main”java.lang.nosuchmethoderror中出现异常:com/myapp/client.cyphercbc(ljava/lang/string;)ljava/lang/string; 但它在另一个本地环境中运行良好。到目前为止我的代码在下面;
我不知道这里发生了什么。我使用Date数据类型将数据保存在数据库中,但它一直给出这样的错误--访问数据库的错误:javax.servlet.servletException:java.lang.noSuchMethoderRror:model.addevents.getStartDate()ljava/lang/string;。我认为问题出在我的servlet和java bean中的Date类型的
我在Elasticsearch 7.4版中使用Spring数据Elasticsearch。马文: 模型 存储库: 服务 控制器: 当我进行搜索时:localhost:8189/api/v1/fias/search?query=我收到一个错误: JAVAlang.NoSuchMethodError:org。springframework。数据util。类型信息。isSubTypeOf(Ljava/l
问题内容: 我将TestNG更新为6.14.3并将Selenium更新为3.13.0后,收到上述Json异常。我正在使用ChromeDriver()实现自动化。以下是有关我的代码的简要说明: 我以前的版本分别是TestNG和Selenium的6.11.0和3.7.1。 当代码尝试启动WebDriver会话时,将出现异常。 完整的例外是: 问题答案: 此错误信息: …表示在JVM尝试转义某些字符时引
问题内容: 当我将Hibernate 5添加到我的网站时,无法在Glassfish 4.1.1中使用它。我总是会出错 java.lang.NoSuchMethodError:org.jboss.logging.Logger.debugf(Ljava / lang / String; I)V 我试图替换Glassfish的modules文件夹中的jboss- logging库,就像我读到一个类似问题