2013-10-22 31 views
1

將PrimeFaces和faces-config一起使用時,出現NullPointerException。在添加faces-config.xml之前,一切正常。之後,我加入faces-config.xml中改變導航,我呼籲每一個頁面的時候出現以下錯誤:當使用faces-config和PrimeFaces 4.0時出現NullPointerException

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); 
} 

所以這可以」 t是錯誤來源。在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> 

這應該引導每一個環節,以索引一個index.jsf,沒有關於該文件夾中的當前站點。但是,如果在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"> 

出現同樣的錯誤。

一切都在Tomcat 7

該錯誤的搜索運行不包含太多的結果,在http://forum.primefaces.org/viewtopic.php?f=3&t=30109&start=10人似乎有一個老版本的PrimeFaces 4.0同樣的問題,但我得到它來自maven,這不可能是我的錯誤。

有沒有人提示如何解決這個問題?

+0

我看到的是,你有jsf 1.2版本。我不確定PrimeFaces 4.0是否支持2.x之前的JSF版本 –

+0

我確認,PrimeFaces 4在JSF 2.2之前不起作用。 – LaurentG

+0

感謝您的諮詢!將版本更改爲2.0做到了:) –

回答

0

事實上,Primefaces 4不支持JSF 1.2,但它可以在2.2之前的JSF中使用。

從Primefaces文檔:

PrimeFaces 4.0支持JSF 2.0,2.1和使用特徵檢測同時 2.2運行時和通過不具有編譯時間依賴性的 特定版本。因此,根據運行時間的不同,某些功能僅可用於 。

1

這個問題可以與使用JBoss Seam的郵件和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">

相關問題