Witam. Problem przedstawia się następująco. Chcę za pomocą znacznika webuijsf:upload pozwolić użytkownikowi wybrać plik z dysku, a następnie załadować go do aplikacji, gdzie następnie zostanie dodany do bazy danych.

Niestety, mimo iż zrobiłem wszystko tak, jak opisane jest w dokumentacji Woodstocka, to nic nie działa tak jak powinno. Nie mogę nawet zdebuggować kodu, bo nie wywołują się metody set ustawiające UploadedFile (wygląda to tak jakby w ogóle nic się nie działo poza przeładowanie strony)

Tak wygląda mój bean

import com.sun.jsfcl.app.AbstractPageBean;
import com.sun.webui.jsf.model.UploadedFile;


/**
 *
 * @author Tomek
 */
public class FileUpload extends AbstractPageBean  {
     //
     // Holds value of property uploadedFile.

    private UploadedFile uploadedFile;
   
    public String getStringContent() {
        return uploadedFile.getAsString();
    }

    public UploadedFile getUploadedFile() {
        return this.uploadedFile;
    }

    public void setUploadedFile(UploadedFile uploadedFile) {
        this.uploadedFile = uploadedFile; // w czasie debbugingu nie wchodzi nawet do tej metody 
    }   
    
     public String uploadFile(){
        if (uploadedFile==null) return "system";
        if (uploadedFile.getAsString().length()==0) return "system";
        String tes = uploadedFile.getAsString();
        //boolean res = readFromByteArray(tes.getBytes(Charset.forName("UTF-8")));
        //if (res==true) renderUploaded = true;
        //else renderUploaded = false;
        return "system";
    }
}

Tak kod strony jsp

<webuijsf:tab id="tabOferty" text="Oferty">
                                <webuijsf:panelLayout id="madafaka" style="height: 345px; position: relative; width: 100%; -rave-layout: grid">
                                    <h:form>
                                    <h:panelGrid columns="1" id="gridPanel112">
                                        <webuijsf:label id="label4upload" text="Wybierz plik XML do zapisania na serwerze"/>
                                        <webuijsf:upload id="upload1" uploadedFile="#{FileUpload.uploadedFile}"/>
                                        <webuijsf:label id="label4432123uplad" text=""/>
                                        <webuijsf:button actionExpression="#{FileUpload.uploadFile}" id="buttonUpload"
                                                style="background-color: rgb(229, 230, 255)" text="Poslij na serwer"  />
                                    </h:panelGrid>
                                    </h:form>
                                </webuijsf:panelLayout>
                            </webuijsf:tab>

A tak web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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-app_2_5.xsd">
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>false</param-value>
    </context-param>
    
    <filter>
        <filter-name>UploadFilter</filter-name>
        <filter-class>com.sun.webui.jsf.util.UploadFilter</filter-class>
        <init-param>
            <description>The maximum allowed upload size in bytes.  If this is set to a negative value, there is no maximum.  The default value is 1000000.</description>
            <param-name>maxSize</param-name>
            <param-value>1000000</param-value>
        </init-param>
        <init-param>
            <description>The size (in bytes) of an uploaded file which, if it is exceeded, will cause the file to be written directly to disk instead of stored in memory.  Files smaller than or equal to this size will be stored in memory.  The default value is 4096.</description>
            <param-name>sizeThreshold</param-name>
            <param-value>4096</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>UploadFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
    
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <init-param>
            <param-name>javax.faces.LIFECYCLE_ID</param-name>
            <param-value>com.sun.faces.lifecycle.PARTIAL</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>ExceptionHandlerServlet</servlet-name>
        <servlet-class>com.sun.errorhandler.ExceptionHandler</servlet-class>
        <init-param>
            <param-name>errorHost</param-name>
            <param-value>localhost</param-value>
        </init-param>
        <init-param>
            <param-name>errorPort</param-name>
            <param-value>24444</param-value>
        </init-param>
    </servlet>
    <servlet>
        <servlet-name>ThemeServlet</servlet-name>
        <servlet-class>com.sun.webui.theme.ThemeServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ExceptionHandlerServlet</servlet-name>
        <url-pattern>/error/ExceptionHandler</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ThemeServlet</servlet-name>
        <url-pattern>/theme/*</url-pattern>
    </servlet-mapping>
        <servlet>
            <servlet-name>DisplayImage</servlet-name>
            <servlet-class>tools.DisplayImage</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>DisplayImage</servlet-name>
            <url-pattern>/DisplayImage</url-pattern>
        </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/Login.jsp</welcome-file>
        </welcome-file-list>
    <error-page>
        <exception-type>javax.servlet.ServletException</exception-type>
        <location>/error/ExceptionHandler</location>
    </error-page>
    <error-page>
        <exception-type>java.io.IOException</exception-type>
        <location>/error/ExceptionHandler</location>
    </error-page>
    <error-page>
        <exception-type>javax.faces.FacesException</exception-type>
        <location>/error/ExceptionHandler</location>
    </error-page>
    <error-page>
        <exception-type>com.sun.rave.web.ui.appbase.ApplicationException</exception-type>
        <location>/error/ExceptionHandler</location>
    </error-page>
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jspf</url-pattern>
            <is-xml>true</is-xml>
        </jsp-property-group>
        </jsp-config>
     <resource-ref>
        <res-ref-name>jdbc/sapon</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
</web-app>

Jak widzicie - dodałem filtr <filter-name>UploadFilter</filter-name>.

Mi osobiście skończyły się już pomysły :| pomóżcie :)