NullPointerException при использовании Faces-config и PrimeFaces 4.0

При совместном использовании PrimeFaces и Faces-config я получаю исключение NullPointerException. До добавления Faces-config.xml все работало нормально. После того, как я добавил Faces-config.xml для изменения навигации, я получил следующую ошибку при вызове каждой страницы:

java.lang.NullPointerException
  org.primefaces.context.PrimeFacesContext.release(PrimeFacesContext.java:26)
  javax.faces.webapp.FacesServlet.service(FacesServlet.java:612)
  org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
  de.mypackage.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:19)

CharacterEncodingFilter просто обеспечивает использование UTF-8:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    chain.doFilter(request, response);
}

Так что это не может быть источником ошибки. Faces-config.xml содержит следующий текст:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config 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_1_2.xsd"
version="1.2">
<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-outcome>index</from-outcome>
        <to-view-id>/index.jsf</to-view-id>
    </navigation-case>
</navigation-rule>

This should direct every link to index to one index.jsf, not regarding in which folder the current site is. But if the faces-config.xml is just like this:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config 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_1_2.xsd"
version="1.2">

the same error appears.

Все работает на Tomcat 7.

Поиск ошибки дал мало результатов, в http://forum.primefaces.org/viewtopic.php?f=3&t=30109&start=10 похоже, у кого-то такая же проблема со старым выпуском PrimeFaces 4.0, но, как я получаю от maven, это не может быть моя ошибка.

Кто-нибудь подскажет, как решить эту проблему?


person David Georg Reichelt    schedule 22.10.2013    source источник
comment
Я вижу, что у вас есть версия jsf 1.2. Я не уверен, что PrimeFaces 4.0 работает с версиями JSF до 2.x.   -  person miroslav_mijajlovic    schedule 22.10.2013
comment
Подтверждаю, PrimeFaces 4 не работает до JSF 2.2.   -  person LaurentG    schedule 22.10.2013
comment
Спасибо за совет! Смена версии на 2.0 помогла :)   -  person David Georg Reichelt    schedule 22.10.2013


Ответы (2)


Проблема может быть связана с использованием JBoss Seam Mail и PrimeFaces 4.0:

http://forum.primefaces.org/viewtopic.php?f=3&t=34653

В моем случае я использовал PrimeFaces v3.4.2, и все работало отлично.

После обновления до официального maven PrimeFaces v4.0 появляется тот же NPE.

Мои лица-config.xml: <faces-config version="2.1">

person victor.stratienco    schedule 10.01.2014

Действительно, Primefaces 4 не работает с JSF 1.2, но работает с JSF до версии 2.2.

Из документации Primefaces:

PrimeFaces 4.0 поддерживает среды выполнения JSF 2.0, 2.1 и 2.2 одновременно, используя обнаружение функций и отсутствие зависимости времени компиляции от конкретной версии. В результате некоторые функции доступны только в зависимости от среды выполнения.

person spauny    schedule 24.10.2013