p: fileupload не работает на Websphere 8 - PullRequest
1 голос
/ 03 ноября 2011

Интересно, кому-нибудь удалось заставить работать p:fileupload компонент Primefaces на 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>

Код управляемого компонента:

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: (Servlet 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 и становится красным, на консоли я получаю исключение ViewExpiredException от Myfaces:

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)

Я даже пробовал использовать две другие версии Mojarra вместо Myfaces, но я получил ошибки(2.1: обработчик не вызывается, 2.0.3: viewexpired)

Ответы [ 2 ]

0 голосов
/ 14 ноября 2013

Я использую Websphere 7 с JSF 2.0 с Mojarra 2 и PrimeFaces 3.4.2 (common-fileupload-1.2.2.jar и common-io-1.3.2.jar)

Я вижуfileUpload не вызывает компонент в WebSphere.Я вижу панель, которая загружает файл, но не получает событие в managedBean.

Кажется, что какой-то другой фильтр в Websphere перехватывает HTTP-запрос, и вы не можете получить данные, отправленные fileUpload, потому чтотолько что употреблено: (

0 голосов
/ 28 октября 2013

Были ли у вас файлы .jars и web.xml (удалите "c:", по умолчанию это маршрут)? У меня была та же проблема, но затем я перезапустил WAS 8.5, и он заработал.

...