gpt4 book ai didi

java - com.sun.facelets.FaceletViewHandler

转载 作者:行者123 更新时间:2023-11-29 03:33:36 27 4
gpt4 key购买 nike

当我在 faces-config.xml 文件中添加以下行时:

" <application><view-handler>com.sun.facelets.FaceletViewHandler</view-handler></application> "

eclipse 说:

" view-handler references to "com.sun.facelets.FaceletViewHandler" that does not implement interface javax.faces.application.ViewHandler

configure problem severity for preference 'invalid view handler' "

但是,我在我的 jsf 项目的“WEB-INF”的“lib”中添加了这些库。当我部署我的 ear 和 jsf 项目时,它们部署正确,但是执行我的 jsf 页面时,出现错误:

" javax.servlet.ServletException: /AddUser.xhtml @9,9 <h:head> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag
was defined for name: head
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606) "

在控制台中,我有:

14:05:49,420 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/primefaces-3.5.jar/META-INF/primefaces-p.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/primefaces-3.5.jar/META-INF/primefaces-p.taglib.xml]: 
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/primefaces-3.5.jar/META-INF/primefaces-p.taglib.xml@5,17]
...
14:05:49,450 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/jstl-fn.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/jstl-fn.taglib.xml]:
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/jstl-fn.taglib.xml@47,31]
...
14:05:49,469 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/jstl-core.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/jstl-core.taglib.xml]:
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/jstl-core.taglib.xml@47,31]
...
14:05:49,479 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/ui.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/ui.taglib.xml]:
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/ui.taglib.xml@47,31]
...
14:05:49,479 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/facelets_jsf_core.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/facelets_jsf_core.taglib.xml]:
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/facelets_jsf_core.taglib.xml@47,31]
...
14:05:49,479 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/composite.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/composite.taglib.xml]:
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/composite.taglib.xml@47,29]
...
14:05:49,489 GRAVE [facelets.compiler] Error Loading Library: vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/html_basic.taglib.xml: java.io.IOException: Error parsing [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/html_basic.taglib.xml]:
...
Caused by: org.xml.sax.SAXException: Error Handling [vfs:/C:/Users/citech/Desktop/testjsf/jsf/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1368781328313/deploy/helloworldjsf.war/WEB-INF/lib/jsf-impl-2.1.6.jar/com/sun/faces/metadata/taglib/html_basic.taglib.xml@47,31]
...
14:05:49,499 GRAVE [facelets.viewhandler] Error Rendering View[/AddUser.xhtml]: com.sun.facelets.tag.TagException: /AddUser.xhtml @9,9 <h:head> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: head
...
14:05:49,499 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/helloworldjsf].[Faces Servlet]] "Servlet.service()" pour la servlet Faces Servlet a généré une exception: com.sun.facelets.tag.TagException: /AddUser.xhtml @9,9 <h:head> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: head
...

但是当我删除 faces_config.xml 中的行时:然后我重新部署了我的项目,它们部署得很好并且我的 jsf 页面打开了。当我验证表单以便它在数据库中记录时,它返回相同的页面并在控制台中出现以下错误:

"  INFO  [STDOUT] UserBeanCtrl.addUser(): Erreur d'initialisation du contexte JNDI<javax.naming.NamingException: Could not dereference
object [Root exception is java.lang.RuntimeException: Can not find
interface declared by Proxy in our CL +
org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader@526f437d]> "

我不明白发生了什么。

faces-config.xml

    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_0.xsd"
version="2.0">
<managed-bean>
<managed-bean-name>userBeanVue</managed-bean-name>
<managed-bean-class>net.viralpatel.jsf.helloworld.UserBeanVue</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>userBeanCtrl</managed-bean-name>
<managed-bean-class>net.viralpatel.jsf.helloworld.UserBeanCtrl</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<display-name>AddUser</display-name>
<from-view-id>/AddUser.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/ListUser.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
</faces-config>

网络.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>helloworldjsf</display-name>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>bluesky</param-value>
</context-param>
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>2</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>

最佳答案

看起来您正在混合使用 JSF 1.x、Facelets 1.x 和 JSF 2.x。你有一个 JSF 2.0 兼容的 faces-config.xml 根声明,但你仍然以遗留的 JSF 1.x 方式声明托管 bean 和导航案例(由于 @MangedBean 注释和隐式导航,JSF 2.x 中不再需要这些条目特征)。也许您在尝试学习 JSF 2.x 时阅读了错误的书籍/教程/资源。

此外,您提到的 ViewHandler 实现来自 Facelets 1.x,只有当您仍在使用旧版 JSF 1.x 时才需要它。但是,从 JSF 2.x 开始,Facelets 2.x 被捆绑在 JSF API/实现 JAR 中,并成为默认的 View 技术,因此无需单独的 Facelets JAR 文件,也无需在 faces-config.xml 中手动注册其 View 处理程序.

<h:head> 上的标记错误还证实您在运行时实际上使用的是 JSF 1.x JAR,而不是 JSF 2.x,因为 <h:head> 是在 JSF 2.x 中引入的,而在 JSF 1.x 中不存在。

删除所有与 JSF 1.x 和 Facelets 1.x 相关的 JAR,并确保您已经下载并安装了 JSF 2.x(或者只是不要下载任何 JBoss 6x 本身已经附带的) JSF 2.x 捆绑,因此有效地拥有一个完全空的 /WEB-INF/lib 也应该足以让 JSF 2.x 运行)。扔掉那些 JSF 1.x 书籍/教程/资源,转向 JSF 2.x 书籍。 Our JSF wiki page 是一个很好的起点。

至于 XML 配置文件,最终,您应该以 faces-config.xml web.xml 中的以下条目结束:

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

如果“aristo”的默认值不是您想要的,如有必要,请添加 PrimeFaces 主题。

关于java - <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com