***RESOLVIDO *** java.lang.NoSuchFieldError: APPDEFAULT

Pessoal,

Estou tentando integrar uma aplicação JSF 2 com jasper report, e no momento que vou mandar exportar pra pdf usando o método
JasperExportManager.exportReportToPdfFile dá essa erro: javax.faces.el.EvaluationException: java.lang.NoSuchFieldError: APPDEFAULT

Abaixo segue meu managedben

@ManagedBean  
public class RelatorioTituloBean {  
  
   private String saida;  
        
   public String geraRelatorioPassandoConexao() {  
      saida = null;  
      String jasper = getDiretorioReal("/Report/TitAbertoAVencer.jasper");  
      Connection conexao = null;  
  
      try {  
         // Abro a conexão com o banco que será passada para o JasperReports  
         conexao = new Conexao().getConexao();  
         // Mando o jasper gerar o relatório  
         JasperPrint print = JasperFillManager.fillReport(jasper, null, conexao);  
         // Gero o PDF  
         preenchePdf(print);  
      } catch (Exception e) {  
         e.printStackTrace();  
      } finally {  
         try {  
            // Sempre mando fechar a conexão, mesmo que tenha dado erro  
            if (conexao != null)  
               conexao.close();  
         } catch (SQLException e) {  
              
         }  
      }  
        
      return "exibeRelatorio";  
   }  
  
     
   private void preenchePdf(JasperPrint print) throws JRException {  
      // Pego o caminho completo do PDF desde a raiz  
      saida = getDiretorioReal("/pdf/relatorio.pdf");  
      // Exporto para PDF  
      JasperExportManager.exportReportToPdfFile(print, saida);  
      /* 
       * Jogo na variável saída o nome da aplicação mais o  
       * caminho para o PDF. Essa variável será utilizada pela view  
       */  
      saida = getContextPath() + "/pdf/relatorio.pdf";  
   }  
     
   private String getDiretorioReal(String diretorio) {  
      HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);  
      return session.getServletContext().getRealPath(diretorio);  
   }  
     
   private String getContextPath() {  
      HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);  
      return session.getServletContext().getContextPath();  
   }  
     
   public String getSaida() {  
      return saida;  
   }  
  
   public void setSaida(String saida) {  
      this.saida = saida;  
   }  
}  

Na página estou chamando assim:

<h:commandLink target="_blank" action="#{relatorioTituloBean.geraRelatorioPassandoConexao}" value="Títulos à Vencer" />  

Alguém poderia dar um help?

Desde já agradeço

No seu relatório existe algum campo procurando por esse campo?

jakefrog, não tem nenhum campo com esse nome.
Já olhei tudo quanto é coisa, mas não tenho idéia.

Rapaz, então vai na tentativa.

Apaga tudo que é campo e veja se o relatório gera vazio. E depois vai adicionando um a um. O.o

Olá mvicente!

Você conseguiu resolver o problema? Eu estou enfrentando a mesma coisa e não consegui nada para me ajudar!
Esse erro java.lang.NoSuchFieldError: APPDEFAULT tá me deixando maluco!
Não tenho nenhum campo com esse nome. Já tentei até relatório sem nada, somente para exibir, e sempre me retorna o erro!
Caso tenha a solução, por favor, compartilhe comigo!

Obrigado!

johwsm, boa tarde!

Eu não consegui achar a origem desse erro, mas fiz algumas modificações no método e substitui o jar do iText, passando da versão 1.x para 2.1.7.
Só assim consegui resolver.
Experimente fazer isso, caso não consiga, entre me contato.

Abraço

1 curtida

rs.rs.rs.rs
Cara… parece piada, tanto tempo procurando e uma solução tão fácil!

Obrigado mesmo mvicente!

[]s