Проблема с ядром JSF: javax.servlet.ServletException

Пояснение:

У меня есть ссылка на команду JSF, которая устанавливает член в бине поддержки, однако при установке члена бина поддержки с помощью setPropertyActionListener я получаю ошибку нераспознанного тега.

Проект строится и развертывается без проблем. Отображается страница по умолчанию, затем при запросе страницы с помощью 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: полная трассировка

javax.servlet.ServletException: /portal/index.xhtml @ 65,125 Библиотека тегов поддерживает пространство имен: http://java.sun.com/jsf/core, но для name не определен тег: setPropertyActionListener

com.sun.facelets.tag.TagException: /portal/index.xhtml @ 65,125 Библиотека тегов поддерживает пространство имен: http://java.sun.com/jsf/core, но для name не определен тег: 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
  • catalina-ant.jar
  • catalina-tribes.jar
  • jasper-jdt.jar
  • tomcat-dbcp.jar
  • tomcat-i18n-ja.jar
  • catalina-ha.jar
  • Commons-logging-1.1.1.jar
  • jasper-el.jar
  • jsp-api.jar
  • сервлет-api.jar
  • tomcat-i18n-es.jar

Библиотеки в Project:

  • Activation.jar
  • commons-digester.jar
  • ezmorph-1.0.6.jar
  • jstl.jar
  • richfaces-ui-3.3.0.GA.jar
  • Commons-beanutils-1.8.0.jar
  • общий-lang-2.4.jar
  • jsf-api.jar
  • jxl.jar
  • standard.jar
  • commons-beanutils.jar
  • Commons-logging-1.1.1.jar
  • jsf-facelets.jar
  • mail.jar
  • общие коллекции-3.2.jar
  • commons-logging.jar
  • jsf-impl.jar
  • richfaces-api-3.3.0.GA.jar
  • commons-collections.jar
  • el-impl-1.0.jar
  • json-lib-2.2.3-jdk15.jar
  • richfaces-impl-3.3.0.GA.jar

person Berek Bryan    schedule 20.08.2009    source источник


Ответы (2)


Вы не можете указать, какую версию JSF вы используете в своем проекте.

Действительно, был включен тег setPropertyActionListener в JSF 1.2 и недоступен для проекта JSF 1.1.

Это может объяснить проблему, с которой вы столкнулись ...

person Romain Linsolas    schedule 20.08.2009
comment
извините, я использую JSF 1.2. я нахожусь в процессе проверки. - person Berek Bryan; 20.08.2009
comment
Убедитесь, что у вас нет дублирующего JAR для реализации JSF, или если у вас нет других реализаций JSF (например, myfaces) ... - person Romain Linsolas; 20.08.2009
comment
ну, я почти уверен, что это была проблема, но я не мог точно определить, в чем проблема. Я добавляю то, что я сделал, в ответ на то, что вы отдаете должное. - person Berek Bryan; 21.08.2009

[Изменить]

Эта проблема возникла снова, но я думаю, что нашел решение. Я думаю, что что-то не так с моим файлом jsf-facelets.jar.

Скачал последнюю версию и добавил в проект. Сейчас вроде все супер.

2010.01.26


Я не смог проверить, в чем именно заключается конфликт, поэтому выполнил новую установку.

Я использую Ubuntu под управлением Netbeans 6.7, который был вручную установлен с веб-сайта 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.

person Berek Bryan    schedule 22.08.2009