Ir para conteúdo

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 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?
    • Por Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por Rengavitp
      Bom dia pessoal!

      Estou com o seguinte problema, tenho uma aplicação que funciona perfeitamente rodando na minha IDE (Spring Tool Suite) mas ao gerar o arquivo war e subir a aplicação no tom cat ele não funciona, mas apenas erro 404, abri o war e todos os arquivo estão lá, já tem seguir tudo quando e tutorial com problemas semelhantes mas nenhum resolveu. Abaixo mais informações,.

      Versão do java na aplicacao 11
      Versão do jva no servidor 11
      Versão do tomcat no servidor 8.5.55
       
      minha classe principal
      package br.com.masterplastfitas; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MasterApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MasterApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MasterApplication.class); } } meu pom.xml
      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>masterplast</groupId> <artifactId>Master</artifactId> <version>2.0</version> <packaging>war</packaging> <name>Master</name> <description>Aplicação web </description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> </plugins> </build> </project>  
    • Por Stephhany909
      While trying to persist an object with an attribute of type Point, defined as follows:
       
      @Entity @Table(name = "event") public class Event { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private long id; @Column(columnDefinition = "POINT") private Point coordinate; } I'm getting the error Data truncation: Cannot get geometry object from data you send to the GEOMETRY field.
      The corresponding database table is defined as follows:
       
      create table event ( id bigint not null auto_increment, coordinate POINT, primary key (id) ) engine= InnoDB; What am I missing?
       
×

Informação importante

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