不显示jsf元素

时间:2013-06-01 14:47:59

标签: eclipse jsf primefaces jboss7.x

我制作了基本的动态网页项目,只有一页index.xhtml(eclipse juno 4.2 + JBoss AS 7.1)。当我运行我的网页时,浏览器只显示html元素而不是jsf。我的index.xhtml代码:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
push the button:
<button>ok</button>
<h:button value="not ok"></h:button>
</body>
</html>

我只能看到“确定”按钮。 当我启动我的服务器(独立)时,我发出警告:

WARN  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015893: Encountered invalid class name 'com.sun.faces.vendor.Tomcat6InjectionProvider:org.apache.catalina.util.DefaultAnnotationProcessor' for service type 'com.sun.faces.spi.injectionprovider'
WARN  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015893: Encountered invalid class name 'com.sun.faces.vendor.Jetty6InjectionProvider:org.mortbay.jetty.plus.annotation.InjectionCollection' for service type 'com.sun.faces.spi.injectionprovider'
WARNING [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) JSF1069: Disabling the JSF 2.0 Facelets ViewHandler as an older FaceletViewHandler, com.sun.facelets.FaceletViewHandler, has been explicitly configured. If this is not desired behavior, remove the older FaceletViewHandler and library from your application.

有人有同样的问题吗?我犯了错误或者ide或服务器有一些错误? 谢谢你的帮助。

我有另一个问题。我想添加库primafaces。我右键单击项目然后属性 - &gt;部署组件 - &gt;添加并且.jar显示在管理窗口中,但库不会出现在文件层次结构(WEB-INF / lib)中。

1 个答案:

答案 0 :(得分:3)

您的webapp的运行时类路径是一团糟。日志中的最后一个警告已经是答案:

  

JSF1069:已明确配置禁用JSF 2.0 Facelets ViewHandler作为较旧的FaceletViewHandler com.sun.facelets.FaceletViewHandler。如果这不是所需的行为,请从应用程序中删除旧的FaceletViewHandler和库。

您出于某种原因,在使用JSF 2.0时,您的webapp的运行时类路径中的Facelets 1.x(由jsf-facelets.jar包标识)的com.sun.facelets文件本身已经有了Facelets 2.x打包(由com.sun.faces.facelets包标识)。

在webapp的运行时类路径中删除jsf-facelets.jar和任何其他JSF 1.x相关工件​​(以及/WEB-INF/lib文件夹涵盖的其他工件)。停止阅读JSF 1.x目标书籍/教程/资源,然后前往JSF 2.x版本。在JSF 2.x上,许多事情都做了不同的事情,所以依赖JSF 1.x资源只会让人感到困惑和麻烦。

在捆绑了JSF 2.x的JBoss 7上,/WEB-INF/lib中不需要任何JAR。您也不需要在faces-config.xml中放置任何内容。如果您正在使用JSF 2.1并依赖*.jsf的默认URL映射,那么您也不需要在web.xml中放置任何内容。所以这两个文件都可以有效地保持为空。