Icefaces 3.0.1 FileEntry: nunca se llama a FileEntryListener

1.1, IceFaces 3.0.1 y JSF 2.1 y estaba tratando de trabajar con ace: fileentry. ¡No puedo entender por qué el oyente nunca es llamado! Incluso el IDE me envía una advertencia "pruebaBean.sampleListener es una propiedad desconocida". Aquí hay un breve ejemplo de lo que estoy haciendo. Cuando haga clic en el botón enviar, no pasará nada. Alguien me puede ayudar ?? ¿Podría ser algún tipo de error?

prueba.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ice="http://www.icesoft.com/icefaces/component"
       xmlns:ace="http://www.icefaces.org/icefaces/components">

 <h:head>
 </h:head>
 <h:body>
     <ice:form id="usuarioForm">
         <ice:panelGrid columns="2">
             <ace:fileEntry id="fileEntryImage" absolutePath="c:\iTablero\imagenes"
                             useSessionSubdir="false" useOriginalFilename="false"
                             fileEntryListener="#{pruebaBean.sampleListener}"/>
             <ice:commandButton type="submit" value="Subir archivo"/>
         </ice:panelGrid>
         <ice:messages/>
     </ice:form>
 </h:body>

PruebaBean.java:

 package com.itablero.backingbeans;

 import java.io.Serializable;
 import javax.annotation.ManagedBean;
 import javax.faces.bean.RequestScoped;
 import org.icefaces.ace.component.fileentry.FileEntry;
 import org.icefaces.ace.component.fileentry.FileEntryEvent;
 import org.springframework.stereotype.Controller;

 @ManagedBean
 @Controller
 @RequestScoped
 public class PruebaBean implements Serializable {

     public void sampleListener (FileEntryEvent e) {
         System.out.println("it work!");
         FileEntry fe = (FileEntry) e.getComponent();
         //some others operations
     }
 }
Actualización 1

Gracias a @fischermatte encontré que el problema era reemplazar ice: commandButton por h: commandButton. Pero cuando apliqué esto al formulario original completo y no funcionó. El método fileEntryListener nunca se llama. ¿Alguien puede ver el error aquí? Lógicamente, el ejemplo anterior y el código siguiente tienen el mismo web.xml, faces-config.xml, etc. Tenga en cuenta que el botón para enviar el archivo es h: commandButton, y hay ice: commandButton para completar el formulario. Ya intenté cambiar esto por en h: cb. Aquí está el formulario original (que se muestra en una ventana emergente / modal) y el bean:

usuariosList.xhtml

                <ice:panelPopup rendered="#{usuariosBean.showPopup}"
                            visible="#{usuariosBean.showPopup}"
                            modal="true"
                            autoCentre="true">

                <f:facet name="header">
                    <h:panelGroup>
                        <h:panelGroup style="float: left;">
                            Usuario
                        </h:panelGroup>
                        <h:panelGroup style="float: right;">
                            <ice:form>
                            <h:commandButton image="/resources/images/popup-close.png"
                                            alt="Cerrar" title="Cerrar"
                                            style="height: 11px; width: 11px; border: 0;"
                                            action="#{usuariosBean.closePopup}"/>
                            </ice:form>
                        </h:panelGroup>
                    </h:panelGroup>
                </f:facet>
                <f:facet name="body">
                    <ice:form id="usuarioForm">
                        <ice:panelGrid columns="2">
                            <p>Nombre:</p>
                            <ice:inputText id="nombre" label="nombre" value="#{usuariosBean.usuario.nombre}" size="40" />
                            <p>Imagen:</p>
                            <ice:graphicImage value="#{usuariosBean.usuario.imagen}"/>
                            <ace:fileEntry id="fileEntryImage" absolutePath="c:\iTablero\imagenes"
                                            useSessionSubdir="false" useOriginalFilename="false"
                                            fileEntryListener="#{usuariosBean.formListener}"/>
                            <h:commandButton type="submit" value="Subir archivo"/>
                        </ice:panelGrid>
                        <ice:messages for="usuarioForm"/>
                        <ice:commandButton value="Guardar" action="#{usuariosBean.save()}" />
                    </ice:form>
                </f:facet>                    
            </ice:panelPopup>

UsuariosBean.java

package com.itablero.backingbeans;

import com.itablero.excepciones.DAOException;
import com.itablero.modelo.Usuario;
import com.itablero.servicios.AdminService;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.icefaces.ace.component.fileentry.FileEntry;
import org.icefaces.ace.component.fileentry.FileEntryEvent;
import org.icefaces.ace.component.fileentry.FileEntryResults;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

@ManagedBean
@Controller
@ViewScoped
public class UsuariosBean implements Serializable {

@Autowired
private AdminBean adminBean;
@Autowired
private AdminService adminService;
private Usuario usuario = new Usuario();
private boolean showPopup;

//getter and setters 

public boolean isShowPopup() {
    return showPopup;
}

public void setShowPopup(boolean showPopup) {
    this.showPopup = showPopup;
}


public void openPopup() {
    this.showPopup = true;
}

public void closePopup() {
    this.showPopup = false;
    this.usuario = new Usuario();
}

public String edit(Usuario usuario) {
    this.usuario = usuario;
    this.showPopup = true;
    return "usuariosList";
}

public String delete(Usuario usuario) {
    adminService.delete(usuario);
    return "usuariosList";
}

public String save() {
    try {
        usuario.setTutor(adminBean.getLoggedTutor());
        adminService.save(usuario);
    } catch (DAOException ex) {
        Logger.getLogger(TutoresBean.class.getName()).log(Level.SEVERE, null, ex);
    }
    usuario = new Usuario();
    this.showPopup = false;
    return "usuariosList";
}

public void formListener(FileEntryEvent e) {
    System.out.println("Entro");
    FileEntry fe = (FileEntry)e.getComponent();
    FileEntryResults results = fe.getResults();
    //other stuff
}

}
Actualización 2

Creo que descubrí por qué no funciona, pero necesito ayuda con la solución. Hice las correcciones como un consejo de @fischermatte, pero no funcionó.

Para llegar a esta página con el formulario, primero debe navegar por la página principal/admin/admin.html, si a miras la URL aparece en el navegadorhttp://localhost:8084/iTablero/admin/admin.html. Esta página tiene un menú, una de estas opciones de menú me lleva a la página con el formulario problemático. Pero, debido a que es una llamada AJAX (si no estoy mal), la URL en el navegador no cambia, mantiene lahttp://localhost:8084/iTablero/admin/admin.html. Y el fileEntry nunca llama al oyente. Ahora, si entro en la URL por mi cuentahttp://localhost:8084/iTablero/admin/usuariosList.html, la página se muestra correctamente como antes, pero ahora EL ARCHIVO FUNCIONA PERFECTAMENTE !!! ¿No tengo idea de cómo arreglar esto, tendré que usar redirecciones? Creo que hay algo alrededor de AJAX ....... ayuda pls! :-RE

Actualización 3

Ese es el menú, sin redirigir no funciona.

       <h:form>
            <ice:menuBar orientation="horizontal">
                <ice:menuItem value="Tutores" action="tutoresList"/>
                <ice:menuItem value="Usuarios" action="usuariosList"/>
                <ice:menuItem value="Tableros" action="tablerosList"/>
                <ice:menuItem value="Simbolos" action="simbolosList"/>
                <ice:menuItem value="Estadisticas" action="estadisticas"/>
                <ice:menuItem value="Salir" action="#{adminBean.logout()}"/>
            </ice:menuBar>
       </h:form>

Conaction="usuariosList?faces-redirect=true"&nbsp;funciona bien. Ya se prueba con la navegación hacia adelante a un formulario de página básico con solo una entrada de archivo y no funciona también. Nuevamente, si uso redireccionar, funciona bien. Creo que es un tipo de problema con este componente y la navegación hacia adelante.