Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ArthurCosta

Problema no Primefaces + Lightbox - Java

Recommended Posts

Fala galera, boa tarde!
Estou com um problema de quebrar a cabeça aqui no trabalho, utilizando primefaces e lightbox.
Estou querendo exibir a imagem em miniatura em baixo da descrição, na tela pro cliente.
Entretanto, ta dando um erro de Scoped.
JSF
<p:dataTable
            id="tabelaAnexos"
            var="data"
            value="#{registroInformacaoManipularBean.form.anexoDtoList}"
            style="width:100%; margin-top:20px"
            emptyMessage="Não existem anexos para este registro">


        <p:column headerText="Anexo" >
            <h:outputText value="#{data.nome}"/>
        </p:column>


        <p:column headerText="Descrição" >
            <h:outputText value="#{data.descricao}"/>
            <p:lightBox styleClass="imagebox" id="lighbox1">
                <f:event type="preRenderComponent" listener="#{anexoInformacaoCRUDBean.iniciarArquivo(data)}"/>
                <h:outputLink  value="#{anexoInformacaoCRUDBean.imagem}">
                    <p:graphicImage value="#{anexoInformacaoCRUDBean.imagem}"/>
                </h:outputLink>
            </p:lightBox>
        </p:column>


        <p:column>
            <p:commandButton icon="fa fa-eye" title="Visualizar"
                           ajax="false" actionListener="#{anexoInformacaoCRUDBean.obterArquivo(data)}">
                <p:fileDownload value="#{anexoInformacaoCRUDBean.arquivo}" />
            </p:commandButton>


            <p:commandButton icon="fa fa-trash-o" title="Excluir" update=":tabelaAnexos" actionListener="#{anexoInformacaoCRUDBean.removerArquivo(data)}" rendered="#{not registroInformacaoManipularBean.isVisualizar()}" />


        </p:column>


    </p:dataTable>
Java

package br.com.petrobras.ticepes.swot.jsf.registroinformacao.anexoinformacao;




import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import br.com.petrobras.ticepes.swot.jsf.commons.BaseBean;
import br.com.petrobras.ticepes.swot.jsf.registroinformacao.RegistroInformacaoManipularBean;
import br.com.petrobras.ticepes.swot.usecase.anexoinformacao.dtos.AnexoInformacaoDto;
import org.omnifaces.cdi.ViewScoped;


import javax.inject.Inject;
import javax.inject.Named;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;




@Named
@ViewScoped
public class AnexoInformacaoCRUDBean extends BaseBean {
    private String nomeArquivo;
    private String descricao;
    private AnexoInformacaoDto anexoTemp;


    @Inject
    private transient RegistroInformacaoManipularBean manipularBean;


    @Inject
    private transient AnexoInformacaoService anexoInformacaoService;


    //OBTER
    private StreamedContent arquivo;


    //LIGHTBOX VISUALIZAR
    private StreamedContent imagem;


    //INICIAR O ARQUIVODTO
    private AnexoInformacaoDto arquivoSolicitado;


    public void obterArquivo(AnexoInformacaoDto arquivoSolicitado) {
        this.arquivo = new DefaultStreamedContent(new ByteArrayInputStream(
                arquivoSolicitado.getArquivo()), "", arquivoSolicitado.getNome()
        );
    }


    public void iniciarArquivo(AnexoInformacaoDto arquivoSolicitado){
        this.arquivoSolicitado = arquivoSolicitado;
    }


    public void setImagem(StreamedContent imagem) {
        this.imagem = imagem;
    }




    public StreamedContent getImagem(){


        ByteArrayInputStream sdf = new ByteArrayInputStream(this.arquivoSolicitado.getArquivo());
        return new DefaultStreamedContent(sdf, "image/jpg", this.arquivoSolicitado.getNome());
}


    public void removerArquivo(AnexoInformacaoDto arquivoRemover) {
        this.manipularBean.getForm().getAnexoDtoList().remove(arquivoRemover);
    }


    public void onFileUpload(FileUploadEvent event) {
        if(event.getFile().getSize()  > 10000000){
            super.messages.globalError("Tamanho do anexo superior a 10MB");
        }else{
            anexoTemp = new AnexoInformacaoDto();
            nomeArquivo = event.getFile().getFileName();
            anexoTemp.setArquivo(event.getFile().getContents());
            anexoTemp.setNome(event.getFile().getFileName());
        }
    }


    public void enviarArquivo(){
        anexoTemp.setDescricao(this.descricao);
        if (this.manipularBean.getForm().getAnexoDtoList() == null){
            this.manipularBean.getForm().setAnexoDtoList(new ArrayList<AnexoInformacaoDto>());
        }
        this.manipularBean.getForm().getAnexoDtoList().add(anexoTemp);
        prepararProximoAnexo();
    }


    private void prepararProximoAnexo(){
        this.nomeArquivo = "";
        this.descricao ="";
        this.anexoTemp = null;
    }


    public boolean desabilitarUpload(){
        if(anexoTemp == null){
            return true;
        }else {
            return false;
        }
    }


    public String getNomeArquivo() {
        return nomeArquivo;
    }


    public void setNomeArquivo(String nomeArquivo) {
        this.nomeArquivo = nomeArquivo;
    }


    public String getDescricao() {
        return descricao;
    }


    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }


    public StreamedContent getArquivo() {
        return arquivo;
    }


    public void setArquivo(StreamedContent arquivo) {
        this.arquivo = arquivo;
    }


}
Erro

19:19:27,265 SEVERE [org.primefaces.application.resource.StreamedContentHandler] (http-/127.0.0.1:8080-79) Error in streaming dynamic resource. org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type org.omnifaces.cdi.ViewScoped
19:19:27,265 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/swot-web].[Faces Servlet]] (http-/127.0.0.1:8080-79) JBWEB000236: Servlet.service() for servlet Faces Servlet threw exception: java.io.IOException: javax.el.ELException: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type org.omnifaces.cdi.ViewScoped
at org.primefaces.application.resource.StreamedContentHandler.handle(StreamedContentHandler.java:94) [primefaces-5.2.jar:5.2]
at org.primefaces.application.resource.PrimeResourceHandler.handleResourceRequest(PrimeResourceHandler.java:72) [primefaces-5.2.jar:5.2]
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:591) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100) [primefaces-5.2.jar:5.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.omnifaces.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:122) [omnifaces-2.1.jar:2.1]
at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) [omnifaces-2.1.jar:2.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:355) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:911) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.tomcat.util.net.NioEndpoint$ChannelProcessor.run(NioEndpoint.java:936) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]
at org.apache.tomcat.util.net.NioEndpoint$DefaultThreadFactory$1$1.run(NioEndpoint.java:1249) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
Caused by: javax.el.ELException: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type org.omnifaces.cdi.ViewScoped
at javax.el.BeanELResolver.getValue(BeanELResolver.java:309) [jboss-el-api_2.2_spec-1.0.4.Final-redhat-1.jar:1.0.4.Final-redhat-1]
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) [jsf-impl-2.1.28.redhat-8.jar:2.1.28.redhat-8]
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) [jsf-impl-2.1.28.redhat-8.jar:2.1.28.redhat-8]
at org.apache.el.parser.AstValue.getValue(AstValue.java:166) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at org.primefaces.application.resource.StreamedContentHandler.handle(StreamedContentHandler.java:58) [primefaces-5.2.jar:5.2]
... 30 more
Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type org.omnifaces.cdi.ViewScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:608) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at br.com.petrobras.ticepes.swot.jsf.registroinformacao.anexoinformacao.AnexoInformacaoCRUDBean$Proxy$_$$_WeldClientProxy.getImagem(AnexoInformacaoCRUDBean$Proxy$_$$_WeldClientProxy.java) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_60]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_60]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_60]
at javax.el.BeanELResolver.getValue(BeanELResolver.java:304) [jboss-el-api_2.2_spec-1.0.4.Final-redhat-1.jar:1.0.4.Final-redhat-1]
... 36 more

 

 

Então, resumindo. Eu pego a imagem em byte, transformo utilizando o DefaultStreamedContent.
Dá erro de Scoped. Outra observação é que o botão de download que criei funciona perfeitamente.
Agradeço quem puder ajudar, serei muito grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.