Библиотека вкладок Facelets не распознается Eclipse / Tomcat 6 - PullRequest
1 голос
/ 03 марта 2010

Я включил это в JSF-файл index.jsp:

<%@ taglib prefix="ui" uri="http://java.sun.com/jsf/facelets"%>

и Eclipse подчеркивает URL, при наведении указывается следующее:

Cannot find the tag library descriptor for "http://java.sun.com/jsf/facelets"

Развертывание и попытка запуска Tomcat 6 с помощью плагина Tomcat приводит к следующему:

|STDOUT| 2010-03-03 17:57:29,872 | INFO  | [main]: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
    |STDOUT| 2010-03-03 17:57:29,904 | INFO  | [main]: ServletContext 'C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\' initialized.
    |STDOUT| 2010-03-03 17:57:29,904 | INFO  | [main]: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
    03-Mar-2010 17:57:29 org.apache.catalina.core.StandardContext start
    SEVERE: Error listenerStart
    03-Mar-2010 17:57:29 org.apache.catalina.core.StandardContext start
    SEVERE: Context [/myapp] startup failed due to previous errors

...

03-Mar-2010 17:57:30 com.sun.faces.config.ConfigureListener contextDestroyed
SEVERE: Unexpected exception when attempting to tear down the Mojarra runtime
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.application.ApplicationFactory
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804)

Мой web.xml содержит это

<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

Мой face-config.xml содержит это

    <application>
    <!-- tell JSF to use Facelets -->
    <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>

А моя сборка приложения имеет последние версии JSF 2.0.2 jsf-api.jar и jsf-impl.jar. У меня также есть MyFaces 1.2.8 и все последние фляги. Приложение работало хорошо, пока я не обновил JSF. Я бы по крайней мере ожидал ошибку во время выполнения, но здесь Eclipse не может увидеть taglib. Что еще я мог упустить?

EDIT

Для полной информации - я вынул Мохарру и ушел в Myfaces. Это означало, что мне нужно было удалить это из моего web.xml:

<listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener> 

и замените его эквивалентом для myfaces:

<listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

Спасибо

Ответы [ 2 ]

6 голосов
/ 03 марта 2010

Не смешивайте JSF 2.0 с JSF pre-2.0. Это может привести к неожиданным результатам (как показано выше).

Выберите реализацию JSF 2.0 (mojarra как кажется) и удалите все библиотеки myfaces и facelets.

1 голос
/ 03 марта 2010

Ну, это раздражает.Я читал в нескольких местах, что в новую версию Mojarra встроены лицевые грани.Я добавил jsf-facelets-1.1.14.jar в мою сборку, и она развернулась нормально.

...