1

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>

これにより、現在のサイトがどのフォルダーにあるかに関係なく、インデックスへのすべてのリンクが 1 つの 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で、エラーの検索にはあまり結果が含まれていませんでした私はMavenから取得しています。これは私のエラーではありません。

この問題を解決する方法のヒントはありますか?

4

2 に答える 2

0

実際、Primefaces 4 は JSF 1.2 では動作しませんが、2.2 より前の JSF では動作します。

Primefaces のドキュメントから:

PrimeFaces 4.0 は、機能検出を使用し、コンパイル時に特定のバージョンに依存しないことにより、JSF 2.0、2.1、および 2.2 ランタイムを同時にサポートします。その結果、一部の機能はランタイムに応じてのみ使用可能になります。

于 2013-10-24T06:10:38.487 に答える