2012-08-17 12 views
7

Estoy tratando de mostrar dinámicamente una imagen en PrimeFaces utilizando el p: Etiqueta graphicImage de la siguiente manera:Error en la transmisión de recursos dinámicos. Usando p: graphicImage con Primefaces

<p:graphicImage value="#{submissionBean.contestImage}"> 
    <f:param name="imageName" 
     value="#{contestBean.createContest.submissions[0].fileName}" /> 
</p:graphicImage>` 

El bean administrado es el siguiente:

@ManagedProperty("#{param.imageName}") 
private String imageName; 

public String getImageName() 
{ 
    return imageName; 
} 

public void setImageName(String imageName) 
{ 
    this.imageName = imageName; 
} 

private StreamedContent contestImage; 

public StreamedContent getContestImage() 
{ 
    FacesContext context = FacesContext.getCurrentInstance(); 
    if (imageName == null) 
     imageName = Constants.SUBMISSION_FILE_DIR + "/" + "sacxzx_asdsdaas_icon.png"; 
    if (context.getRenderResponse()) 
    { 
     // So, we're rendering the view. Return a stub StreamedContent so 
     // that it will generate right URL. 
     return new DefaultStreamedContent(); 
    } 
    else 
    { 

     return new DefaultStreamedContent(this.getClass().getResourceAsStream(Constants.SUBMISSION_FILE_DIR + "/" + imageName)); 
    } 
} 

I Siempre obtengo el error de "SEVERE: error en la transmisión de recursos dinámicos".

Comprobación de la dirección URL de la imagen parece muy bien:

http://localhost:8080/mashup/javax.faces.resource/dynamiccontent.xhtml?ln=primefaces&pfdrid=pfdrid_4290aa0c-8eef-45ea-a281-638e460e33bf&imageName=sacxzx_asdsdaas_icon.png 

alguna idea de qué es esto?

Gracias!

+0

¿Qué alcance tiene su grano administrado? – wrschneider

+0

Solicitud con alcance. – Graeme

Respuesta

6

Debe ser SessionScoped. Como se llama al método getContestImage() varias veces durante el procesamiento de la página, es mejor crear la transmisión solo una vez.

Cuestiones relacionadas