1

Primefaces のp:fileuploadコンポーネントを Websphere Application Server 8 で動作させることができた人がいるのだろうか。

Primefaces 2.2.1 バージョンを使用しています。

JSF コード:

<h:form enctype="multipart/form-data">  
    <p:fileUpload 
            fileUploadListener="#{mailBean.handleFileUpload}"   
            multiple="true" 
            label="choose" 
            allowTypes="*.jpg;*.png;*.gif;" 
            description="Images"/>          
</h:form>

マネージド Bean コード:

public void handleFileUpload(FileUploadEvent event) 
{  
    files.add(event.getFile());
    logger.info("File uploaded into MailBean: " + event.getFile());
    System.out.println("File uploaded into MailBean: " + event.getFile());
} 

Web.xml フィルター: (サーブレット 3.0)

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
    <init-param>
        <param-name>thresholdSize</param-name>
        <param-value>51200</param-value>
    </init-param>
    <init-param>
        <param-name>uploadDirectory</param-name>
        <param-value>c:/temp/pf</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

コンポーネントは HTTP エラーを示し、赤に変わります。コンソールで、Myfaces によって ViewExpiredException を取得します。

Caused by: javax.faces.application.ViewExpiredException: /createmail.xhtml
           No saved view state could be found for the view identifier: /createmail.xhtml
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)

Myfaces の代わりに Mojarra の他の 2 つのバージョンを試してみましたが、エラーが発生しました (2.1: ハンドラーが呼び出されない、2.0.3: ビューが期限切れになった)。

4

2 に答える 2

0

.jars と web.xml 構成はありましたか (「c:」を削除します。デフォルトはそのルートです)。私は同じ問題を抱えていましたが、WAS 8.5を再起動するとうまくいきました。

于 2013-10-28T05:13:57.570 に答える
0

Mojarra 2 および PrimeFaces 3.4.2 (common-fileupload-1.2.2.jar および common-io-1.3.2.jar) で JSF 2.0 を使用して Websphere 7 を使用しています。

fileUpload が WebSphere の Bean を呼び出さないことがわかります。ファイルをロードするバーが表示されますが、managedBean にイベントが到着しません。

Websphere の他のフィルタが HTTP リクエストをキャプチャしているように見えますが、消費されているだけなので、fileUpload によって送信されたデータを取得できません:(

于 2013-11-14T15:46:33.820 に答える