JSF核心问题:javax.servlet.ServletException

时间:2009-08-20 13:46:33

标签: java jsf facelets

解释

我有一个JSF命令链接,用于设置辅助bean中的成员,但是,当使用setPropertyActionListener设置支持bean成员时,我得到一个无法识别的标记错误。

项目构建和部署没有任何问题。将显示默认页面,然后使用setPropertyActionListener在页面请求上抛出错误。

其他同事可以使用相同的设置运行应用程序。我猜我错过了一个库,或者某些目录或文件存在权限问题。

设定:

  • Netbeans 6.7.1
  • Apache Tomcat 6.0.18
  • JDK 1.6
  • JavaServer Faces 1.2
  • Facelets的

代码:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:rich="http://richfaces.org/rich">

    <ui:composition template="/template.xhtml">

        <ui:define name="body">      
            <h:commandLink value="view" action="viewer">
                <f:setPropertyActionListener target="#{ViewerBean.ticket_id}" value="#{ticket.ticket_id}" />
            </h:commandLink>
        </ui:define>
    </ui:composition> 
</html>

Stacktrace: complete trace

javax.servlet.ServletException:/portal/index.xhtml @ 65,125 Tag Library支持命名空间:http://java.sun.com/jsf/core,但没有为name定义标记:setPropertyActionListener

com.sun.facelets.tag.TagException:/portal/index.xhtml @ 65,125标记库支持名称空间:http://java.sun.com/jsf/core,但没有为名称定义标记:setPropertyActionListener

Apache中的库:

  • 注释-api.jar文件
  • catalina.jar
  • EL-api.jar文件
  • jasper.jar
  • MySQL的连接器的Java-5.1.7-bin.jar
  • Tomcat的coyote.jar
  • tomcat-i18n-fr.jar
  • 卡塔利娜-的ant.jar
  • 卡塔利娜-tribes.jar
  • jasper-jdt.jar
  • Tomcat的dbcp.jar
  • Tomcat的I18N-ja.jar
  • 卡塔利娜-ha.jar
  • 共享记录-1.1.1.jar
  • 碧玉el.jar
  • 的jsp-api.jar文件
  • servlet-api.jar
  • Tomcat的I18N-es.jar

项目中的图书馆:

  • 的activation.jar
  • 公地digester.jar
  • ezmorph-1.0.6.jar
  • 的jstl.jar
  • RichFaces的-UI-3.3.0.GA.jar
  • 公地BeanUtils的-1.8.0.jar
  • 公地琅2.4.jar
  • JS​​F-api.jar文件
  • jxl.jar
  • standard.jar
  • 公地beanutils.jar
  • 共享记录-1.1.1.jar
  • JS​​F-facelets.jar
  • 的mail.jar
  • 公地集合-3.2.jar
  • 公地logging.jar
  • JS​​F-impl.jar中
  • RichFaces的-API-3.3.0.GA.jar
  • 公地collections.jar
  • EL-IMPL-1.0.jar
  • JS​​ON-LIB-2.2.3-jdk15.jar
  • RichFaces的-IMPL-3.3.0.GA.jar

2 个答案:

答案 0 :(得分:1)

您无法确定项目中使用的JSF版本。

实际上,setPropertyActionListener标记已包含在JSF 1.2中,并且不适用于JSF 1.1项目。

这可以解释你遇到的问题......

答案 1 :(得分:0)

<强> [编辑]

这个问题已经重新出现,但是,我认为我找到了一个解决方案。我认为我的jsf-facelets.jar文件有问题。

我下载了最新版本并将其添加到项目中。现在一切似乎都很超级。

2010年1月26日


我无法验证确切的冲突是什么,所以我进行了全新安装。

我在运行Netbeans 6.7的Ubuntu盒子上,它是从Netbeans网站手动安装的。 Apache Tomcat随IDE一起安装。

首先,我删除了Netbeans和Tomcat的可见目录。我实际上是将它们移到垃圾桶中以防万一有些可怕的错误。

$ mv /home/bbryan/apps/netbeans6.7 /home/bbryan/.local/share/Trash
$ mv /home/bbryan/apps/apache-tomcat-6.0.18 /home/bbryan/.local/share/Trash

删除这两个目录后,删除了隐藏的netbeans目录。这个很重要;如果你不这样做,下一次安装的netbeans和tomcat将拥有与以前一样好的和坏的设置。

$ mv /home/bbryan/.netbeans /home/bbryan/.local/share/Trash

删除所有三个目录后,我进行了全新安装,并对我们的本地设置和BINGO进行了一些小的调整。