Consegui enviar uma imagem do JSF para o banco de dados MySQL usando uma tabela com campo Blob, gostaria de saber uma forma de pegar de volta essa imagem e posta-la em uma page JSF usando o campo h:graphicImage.
Pagina JSF
<h:form enctype="multipart/form-data">
	<h:panelGrid columns="3">
		<h:outputLabel value="Arquivo" for="arquivo" />
		<h:inputFile id="arquivo" required="true"
			value="#{uploadFileBean.arquivo}"
			requiredMessage="Informe o arquivo" />
		<h:message for="arquivo" />
		<h:graphicImage></h:graphicImage>
		<h:commandButton action="#{uploadFileBean.upload}"
			value="Upload enviar">
			<f:ajax execute="@form" render="@form" />
		</h:commandButton>
	</h:panelGrid>
</h:form> 
        
           1 curtida 
         
         
            
       
      
        
        
          método de upload no @Controller
public void upload() throws IOException {
    System.out.println(arquivo.getSubmittedFileName());
	byte[] arquivoByte = toByteArrayUsingJava(arquivo.getInputStream());
	
	uploadArquivo.setDescricao(arquivo.getSubmittedFileName());
	uploadArquivo.setArquivo(arquivoByte);
	
	uploadArquivoService.save(uploadArquivo);
	
	uploadArquivo = new UploadFile();
	arquivo = null;
	
} 
        
           1 curtida 
         
         
            
       
      
        
        
          Valeu Abner, eu já havia visto estes tópicos antes, não estou utilizando Primefaces em meu projeto, por tanto acredito que os procedimentos devem mudar um pouco, estou usando apenas JSF e gostaria de saber como funciona a tag h:graphicImage buscando do banco Mysql
         
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  1:22pm
               
              #5 
           
         
        
          
A tag h:graphicImage aponta para o contexto do projeto, então a imagem teria que estar em resources.
Eu tentaria usar a tag img, mas como você salvou a imagem no banco e não o caminho, não sei como vc faria utilizando ela 
Eu não sei como funciona a leitura de uma imagem no banco (eu sempre salvo o caminho), mas o graphicImage do OmniFaces aceita InputString e byte[]
http://showcase.omnifaces.org/components/graphicImage 
O OmniFaces é bem leve, se você quiser coloca-lo no projeto para ver o que da…
         
        
           1 curtida 
         
         
            
       
      
        
        
          Grande Mike, blz? estou utilizando a implementação do mojarra, sera que se comporta da mesma forma?
         
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  1:36pm
               
              #7 
           
         
        
          
 Alexsandro_Andrade:
 
Grande Mike, blz?
 
 
Opa, blz e você?
Eu não encontrei em nenhum lugar falando que eles desenvolveram utilizando Mojarra ou Myfaces, mas o Mojarra é a implementação padrão e a mais usada do JSF, então deve funcionar.
Os requerimentos de acordo com o proprio OmniFaces são esses:
An important design goal will be to have as few dependencies as possible and to be minimally invasive.
OmniFaces 3.x requires Java 1.8, JSF 2.3, EL 3.0, Servlet 3.1, CDI 2.0, WS 1.1
For users who are still on JSF 2.2, use 2.7 instead.
         
        
           1 curtida 
         
         
            
       
      
        
        
          
 Mike:
 
Opa, blz e você?
 
 
Tudo ótimo!
sendo assim, no meu jsf eu devo apontar  no meu <h:graphicImage value=""/> um objeto do tipo  InputString ?
         
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  1:56pm
               
              #9 
           
         
        
          
Seria um <o:graphicImage /> que é o graphicImage do OmniFaces e no value você passa o inputStream ou byte[]
         
        
           
         
            
       
      
        
        
          Entendi, mas no meu caso vou tentar com o h:graphicImage, vou ver se funciona, como eu conseigo transformar um byte[] arquivo em um inputStream?
         
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  2:19pm
               
              #11 
           
         
        
          h:graphicImage eu não sei se funciona com inputStream, que eu saiba funciona apenas com imagens salva em resources
         
        
           
         
            
       
      
        
        
          
 Mike:
 
o:graphicImage
 
 
caso eu use o:graphicImage, como eu conseigo transformar um byte[] arquivo em um inputStream?
         
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  3:36pm
               
              #13 
           
         
        
          
Assim:
byte[] byteArray = new byte[] { 0xC, 0xA, 0xF, 0xE };
InputStream is = new ByteArrayInputStream(byteArray); 
        
           1 curtida 
         
         
            
       
      
        
        
          private InputStream is;
   public InputStream getIs() {
	return is;
}
public void setIs(InputStream is) {
	this.is = is;
}
public void findImagebyId() {
         
        
           
         
            
       
      
        
        
          estou tentando assim, mas nao da certo
         
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  4:49pm
               
              #16 
           
         
        
        
           
         
            
       
      
        
        
          a unica dependencia que preciso por é essa? ou tem outra?
	<!-- https://mvnrepository.com/artifact/org.omnifaces/omnifaces -->
	<dependency>
		<groupId>org.omnifaces</groupId>
		<artifactId>omnifaces</artifactId>
		<version>2.7</version>
	</dependency> 
        
           
         
            
       
      
        
          
          
            Mike  
          
              
                Janeiro 24, 2019,  5:41pm
               
              #19 
           
         
        
          Que eu saiba precisa de CDI, mas o Wildfly ja vem com ele
OmniFaces 2.x requires Java 1.7, JSF 2.2, EL 2.2, Servlet 3.0, CDI 1.1, WS 1.1Eu não to podendo olhar exception agora 
         
        
           1 curtida 
         
         
            
       
      
        
        
          Mike, pelo que li se torna mais facil pelo primefaces fazer esse procedimento, como voce disse
baixei a biblioteca do primefaces
<p:graphicImage></p:graphicImage>
no value="" eu devo apontar para um objeto do tipo InputStream  é isso?