Rafael,
parece que tá OK. Qual versão do richFaces você tá usando?
Faz o seguinte... tenta colocar o a4j:support antes logo depois da declaração do rich:upload, ex:
<rich:fileUpload acceptedTypes="#{uploadBean.supportedExtensions}"
id="upload" addControlLabel="#{msg.file_upload_find}"
uploadControlLabel="#{msg.file_upload_send}"
clearAllControlLabel="#{msg.file_upload_clear}"
cancelEntryControlLabel="#{msg.file_upload_cancel}"
doneLabel="#{msg.file_upload_sent}"
clearControlLabel="#{msg.file_upload_clear}"
transferErrorLabel="#{msg.file_upload_transfer_error}"
stopControlLabel="#{msg.file_upload_stop}" autoclear="false"
allowFlash="false" listHeight="70" immediateUpload="true"
fileUploadListener="#{uploadBean.listenerFile}"
= '#{msg.file_upload_size_rejected}';"
= '#{msg.file_upload_type_rejected}';"
>
<a4j:support reRender="form_panel" event="onuploadcomplete" actionListener="#{uploadBean.classicUploadComplete}" />
<f:facet name="label">
<h:outputText value="{_KB}KB #{msg.file_upload_from} {KB}KB #{msg.file_upload_uploaded} | {mm}:{ss}"></h:outputText>
</f:facet>
</rich:fileUpload>
Peguei um upload aqui dum projeto teste(richFaces 3.3) e funfou belezinha:
<rich:fileUpload
maxFilesQuantity="1"
acceptedTypes="jpg, gif, png"
fileUploadListener="#{mb.uploadDefaultImage}"
immediateUpload="false"
allowFlash="false">
<a4j:support event="onuploadcomplete" reRender="resourceGroup"/>
</rich:fileUpload>
Esse aqui é o exemplo da documentação 3.3:
<rich:fileUpload fileUploadListener="#{fileUploadBean.listener}"
maxFilesQuantity="#{fileUploadBean.uploadsAvailable}"
id="upload"
immediateUpload="#{fileUploadBean.autoUpload}"
acceptedTypes="jpg, gif, png, bmp"/>
<a4j:support event="onuploadcomplete" reRender="info" />
</rich:fileUpload>
<h:commandButton onclick="if($('j_id232:upload').component.entries[0].state == FileUploadEntry.UPLOAD_SUCCESS) alert ('DONE');" value="Check file state"/>
Abraços...On Thu, Jul 1, 2010 at 10:38 AM, Rafael Trindade Chiappetta
<rafaeltscs@xxxxxxxxx> wrote:
Segue....
<a4j:outputPanel id="form_panel" ajaxRendered="true">
<a4j:form prependId="false">
<a4j:keepAlive beanName="uploadBean" ajaxOnly="true" />
<!-- ........ codigos das outras telas ....... há uma navegacao por estado... e o codigo seguinte é renderizado após uma requisicao ajax que modifica o estado do bean que esta sendo mantido apos o request. -->
<h:panelGroup rendered="#{uploadBean.formUploadState == uploadBean.FILE_UPLOAD_STATE}">
<rich:fileUpload acceptedTypes="#{uploadBean.supportedExtensions}"
id="upload" addControlLabel="#{msg.file_upload_find}"
uploadControlLabel="#{msg.file_upload_send}"
clearAllControlLabel="#{msg.file_upload_clear}"
cancelEntryControlLabel="#{msg.file_upload_cancel}"
doneLabel="#{msg.file_upload_sent}"
clearControlLabel="#{msg.file_upload_clear}"
transferErrorLabel="#{msg.file_upload_transfer_error}"
stopControlLabel="#{msg.file_upload_stop}" autoclear="false"
allowFlash="false" listHeight="70" immediateUpload="true"
fileUploadListener="#{uploadBean.listenerFile}"
= '#{msg.file_upload_size_rejected}';"
= '#{msg.file_upload_type_rejected}';" >
<f:facet name="label">
<h:outputText
value="{_KB}KB #{msg.file_upload_from} {KB}KB #{msg.file_upload_uploaded} | {mm}:{ss}"></h:outputText>
</f:facet>
<a4j:support reRender="form_panel" event="onuploadcomplete"
actionListener="#{uploadBean.classicUploadComplete}" />
</rich:fileUpload>
<br /> <br />
<span id="fileRejectedMessage" style="color:#FF0000;"></span>
<br /> <br />
<a4j:commandButton id="btnGoInformationState" value="#{msg.btnBack}" action="" reRender="form_panel" />
</h:panelGroup>
</a4j:form>
</a4j:outputPanel>