Erros ao Gerar Boleto

283 views
Skip to first unread message

Adriano Aguiar

unread,
Jun 18, 2013, 8:38:58 AM6/18/13
to caelum-st...@googlegroups.com
Bom dia Pessoal estou fazendo teste com Stella para Gerar Boleto e está dando os seguinte erros!

Exception in thread "main" java.lang.NullPointerException
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.tentaFecharOFileOutput(GeradorDeBoleto.java:63)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:57)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:38)
    at GerarBoleto.main(GerarBoleto.java:34)


grato!
Adriano de Aguiar

Mario Amaral

unread,
Jun 18, 2013, 8:50:17 AM6/18/13
to caelum-st...@googlegroups.com
Oi Adriano

Pode postar o código que vc está usando para gerar o boleto (só a parte onde vc usa o GeradorDeBoleto) e a stacktrace toda?

Abraços

Mário do Amaral Gonçalves


2013/6/18 Adriano Aguiar <adrianoa...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Adriano Aguiar

unread,
Jun 18, 2013, 9:01:53 AM6/18/13
to caelum-st...@googlegroups.com
estou usando um class main para testar e código eu estava usando exemplo está no blog mas agora o do grupo  o código é  esse !

public class GerarBoleto {
    public static void main(String[] args) {
         long t1 = System.currentTimeMillis();
         
         for (int i = 0; i < 100; i++) {
         Datas datas = Datas.novasDatas()
         .comDocumento(26, 3, 2013)
         .comProcessamento(26, 3, 2013)
         .comVencimento(29, 3, 2013);
         
         Banco banco = new Itau();
         Emissor emissor = Emissor.novoEmissor()
         .comCedente("blah blah blah blah blah blah blah")
         .comCarteira(174)
         .comAgencia(111)
         .comContaCorrente(11111)
         .comDigitoContaCorrente('9')
         .comNossoNumero(65208432l)
         .comDigitoNossoNumero("6");
         
         Sacado sacado = Sacado.novoSacado()
         .comNome("SACADO LEGAL")
         .comCpf("000.000.000-00")
         .comEndereco("RUA QUALQUER, 672")
         .comBairro("AAAAAA")
         .comCep("00000-000")
         .comCidade("CIDADE DO CLIENTE")
         .comUf("RS");
         
         Boleto boleto = Boleto.novoBoleto()
         .comDatas(datas)
         .comEmissor(emissor)
         .comBanco(banco)
         .comSacado(sacado)
         .comNumeroDoDocumento("")
         .comDescricoes("waka")
         .comLocaisDePagamento("PAGAR NO BANCO")
         .comInstrucoes("INSTRUCAO MALUCA")
         .comValorBoleto(50.88);
         new GeradorDeBoleto(boleto).geraPDF("/tmp/boleto-stella-" + i + ".pdf");
         }
         
         System.out.println(">>>>"+(System.currentTimeMillis() - t1));

Mário do Amaral Gonçalves


2013/6/18 Adriano Aguiar <adrianoa...@gmail.com>
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-user+unsub...@googlegroups.com.

Mario Amaral

unread,
Jun 18, 2013, 10:28:25 AM6/18/13
to caelum-st...@googlegroups.com
Eu rodei esse código que vc me enviou aqui e funcionou normal.

Vc tem acesso a pasta tmp? Tente mudar o diretório de geração só pra fazer um teste.

Abraços
Mário do Amaral Gonçalves


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Adriano Aguiar

unread,
Jun 18, 2013, 11:33:26 AM6/18/13
to caelum-st...@googlegroups.com
estou estando com stella-boleto-2.03 e com itextpdf, é mesma biblioteca que vc utilizou?

att

Adriano de Aguiar
Mário do Amaral Gonçalves



Mário do Amaral Gonçalves


2013/6/18 Adriano Aguiar <adrianoa...@gmail.com>

To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-user+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.
 
 

Mario Amaral

unread,
Jun 18, 2013, 12:30:50 PM6/18/13
to caelum-st...@googlegroups.com
No caso do 2.0.3 ainda está usando itext 2.1.0. Só será atualizado no próximo release.

Quais jars estão no seu classpath?

Abraços
Mário do Amaral Gonçalves


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Adriano Aguiar

unread,
Jun 18, 2013, 12:37:35 PM6/18/13
to caelum-st...@googlegroups.com
são esses que estão em anexo estou usando versão diferente!
It.jpg

Mario Amaral

unread,
Jun 18, 2013, 12:50:12 PM6/18/13
to caelum-st...@googlegroups.com
É, neste caso pode não funcionar mesmo. Ou você :

 - Muda pra uma versão mais antiga do itext (no nosso caso seria a 2.1.0 ) 
 - Espera o próximo release, que vai estar com o itextpdf 5.1.3
 - Gera um jar com o código que está no repositório do github ( github.com/caelum/caelum-stella). Lá ja está com o novo itext.

se precisar de ajuda avise.

Abraços
Mário do Amaral Gonçalves


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Otávio Garcia

unread,
Jun 18, 2013, 1:04:37 PM6/18/13
to caelum-st...@googlegroups.com
Eu não acredito que possa ser uma versão diferente das libs que possam causar o erro.

De alguma forma o Stream está fechando nulo no tentaFecharOFileOutput. Vendo a implementação, ele possui um catch para IOException.

Como é um método que apenas fecha Closeables, penso que seria melhor alterar ele para fazer catch de Exception, ou então fazer uma validação se c != null, seguindo a idéia que o Guava e o Commons IO usam.

    private void tentaFecharOFileOutput(Closeable c) {
        try {
            c.close();
        } catch (IOException e) {
            throw new GeracaoBoletoException("Erro ao fechar stream", e);
        }
    }


2013/6/18 Mario Amaral <mari...@gmail.com>

Otávio Garcia

unread,
Jun 18, 2013, 1:33:57 PM6/18/13
to caelum-st...@googlegroups.com
Aliás, deixem-me dar outra sugestão.

Não vejo sentido de relançar a exception, principalmente com uma exception tão genérica como GeracaoBoletoException. Penso que a melhor opção seria um close quietly, pois se o stream já estiver fechado, ou algo assim, não vejo razão para lançar uma exception. Ou seja, tenta fechar o Closeable, e se der algum erro, ignora.

2013/6/18 Otávio Garcia <ota...@otavio.com.br>

Mario Amaral

unread,
Jun 18, 2013, 2:07:19 PM6/18/13
to caelum-st...@googlegroups.com
Sim, concordo. E também acho estranho ele tentar fechar o stream 2 vezes (uma dentro do try, e outra no tentafecharblablabla)

O que deve ter acontecido é uma exception antes que acabou culminando no nullpointer pelo stream estar null. Como não vi a stack inteira, não dei pra ver exatamente o que ocorreu...

Vou abrir uma issue pra gente lembrar de mexer nessa parte depois.

Abraços
Mário do Amaral Gonçalves


Otávio Garcia

unread,
Jun 18, 2013, 2:11:21 PM6/18/13
to caelum-st...@googlegroups.com
Mário, é verdade.

Adriano, você tem como mandar o stacktrace completo em um gist ou um pastebin? Seria mesmo interessante saber quem está lançando esse NullPointerException.

Se o Closeable já estivesse fechado, receberiamos um IOException.

2013/6/18 Mario Amaral <mari...@gmail.com>

Adriano Aguiar

unread,
Jun 24, 2013, 2:39:20 PM6/24/13
to caelum-st...@googlegroups.com
Olá pessoal estou com problema para gerar boleto!

Mario Amaral

unread,
Jun 24, 2013, 4:08:30 PM6/24/13
to caelum-st...@googlegroups.com
Qual o problema?

Manda a stacktrace.

abraços

Adriano Aguiar

unread,
Jun 25, 2013, 11:58:56 AM6/25/13
to caelum-st...@googlegroups.com
Estou usando as bibliotecas
caelum-stella-boleto-2.0.3.jar
iText-2.1.7.jar

e logo abaixo a class que estou fazendo teste e a mensagem de erro!

import br.com.caelum.stella.boleto.Banco;
import br.com.caelum.stella.boleto.Boleto;
import br.com.caelum.stella.boleto.Datas;
import br.com.caelum.stella.boleto.Emissor;
import br.com.caelum.stella.boleto.Sacado;
import br.com.caelum.stella.boleto.bancos.Itau;
import br.com.caelum.stella.boleto.transformer.GeradorDeBoleto;
Esse é aqui é o erro

Exception in thread "main" java.lang.NullPointerException
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.tentaFecharOFileOutput(GeradorDeBoleto.java:63)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:57)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:38)
    at br.com.cuiaba.servletincricao.GerarBoleto.main(GerarBoleto.java:50)

att

Mario Amaral

unread,
Jun 25, 2013, 2:14:29 PM6/25/13
to caelum-st...@googlegroups.com
Adriano

2 coisas:

Faz o seguinte teste pra mim:

import java.io.File;
import java.io.FileOutputStream;

public class Bla {
  public static void main(String[] args) throws Exception {
    FileOutputStream os = new FileOutputStream(new File("/tmp/boleto-stella.pdf"));
    os.close();
  }
}

Roda essa classe, e se der algum erro me avisa.

Essa stacktrace q vc mandou está completa? Me manda tudo que aparece no console.

Abraços
Mário do Amaral Gonçalves


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Adriano Aguiar

unread,
Jun 25, 2013, 2:56:26 PM6/25/13
to caelum-st...@googlegroups.com
Olá esse código não deu erro ai verifiquei se existe o arquivo utilizando
 File f = new File ("c:\\tmp\\boleto-stella.pdf"); 
            if (f.exists()) { 
                System.out.println("Existe esse arquivo");
            } 
ele acha o arquivo!
o erro do console é esse

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
    at br.com.caelum.stella.boleto.transformer.PNGPDFTransformerHelper.imprimeReciboDeSacado(PNGPDFTransformerHelper.java:115)
    at br.com.caelum.stella.boleto.transformer.PNGPDFTransformerHelper.transform(PNGPDFTransformerHelper.java:48)
    at br.com.caelum.stella.boleto.transformer.PDFBoletoWriter.write(PDFBoletoWriter.java:144)
    at br.com.caelum.stella.boleto.transformer.BoletoTransformer.transform(BoletoTransformer.java:36)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.gera(GeradorDeBoleto.java:125)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:106)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:50)
    at br.com.caelum.stella.boleto.transformer.GeradorDeBoleto.geraPDF(GeradorDeBoleto.java:38)
    at br.com.cuiaba.servletincricao.GerarBoleto.main(GerarBoleto.java:52)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 9 more

Otávio Garcia

unread,
Jun 25, 2013, 2:58:58 PM6/25/13
to caelum-st...@googlegroups.com
Adriano, você está usando qual versão do stella? Algum release do maven ou usando a versão disponível no github?

Faça também um mvn dependency:tree para verificarmos as dependências.

2013/6/25 Adriano Aguiar <adrianoa...@gmail.com>
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Otávio Garcia

unread,
Jun 25, 2013, 3:02:38 PM6/25/13
to caelum-st...@googlegroups.com
Esqueci de perguntar... você está gerenciando as dependências manualmente ou via maven? Se você está gerenciando manualmente, você deve incluir o commons-lang.

2013/6/25 Otávio Garcia <ota...@otavio.com.br>

Adriano Aguiar

unread,
Jun 25, 2013, 3:43:13 PM6/25/13
to caelum-st...@googlegroups.com
manualmente

Otávio Garcia

unread,
Jun 25, 2013, 3:58:06 PM6/25/13
to caelum-st...@googlegroups.com
Então você deve ter as seguintes libs:

[INFO] br.com.caelum.stella:caelum-stella-boleto:jar:2.0.x
[INFO] +- com.itextpdf:itextpdf:jar:5.1.3:compile
[INFO] +- com.itextpdf.tool:xmlworker:jar:1.1.1:compile
[INFO] +- commons-lang:commons-lang:jar:2.3:compile


2013/6/25 Adriano Aguiar <adrianoa...@gmail.com>
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Adriano Aguiar

unread,
Jun 25, 2013, 4:00:42 PM6/25/13
to caelum-st...@googlegroups.com
Valeu galera consegui, estava faltando commons-lang mesmo, muito obrigado Otávio!

att
Adriano de Aguiar

Otávio Garcia

unread,
Jun 25, 2013, 4:06:33 PM6/25/13
to caelum-st...@googlegroups.com
Quando você não souber as libs necessárias, dê uma olhada no site http://mvnrepository.com. Lá você pode ver quais são as dependencias obrigatórias, e baixá-las do repositório do maven.

2013/6/25 Adriano Aguiar <adrianoa...@gmail.com>
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Mario Amaral

unread,
Jun 25, 2013, 4:11:21 PM6/25/13
to caelum-st...@googlegroups.com
Ta faltando o commons-lango no seu classpath, baixa a versão 2.6 => http://ftp.unicamp.br/pub/apache//commons/lang/binaries/commons-lang-2.6-bin.zip

Eu vou fazer um novo release na sexta, na nova versão não vai mais precisar dessa biblioteca, mas por enquanto ainda precisa.

baixa, coloca no classpath e me avisa se deu certo.

Abraços
Mário do Amaral Gonçalves


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Adriano Aguiar

unread,
Jun 25, 2013, 4:13:45 PM6/25/13
to caelum-st...@googlegroups.com
ok muito obrigado!

Adriano Aguiar

unread,
Jun 25, 2013, 4:17:03 PM6/25/13
to caelum-st...@googlegroups.com
funcionou perfeito!

Adriano Aguiar

unread,
Jul 3, 2013, 11:35:43 AM7/3/13
to caelum-st...@googlegroups.com
Olá Mario estou informando a conta 6134 e o digito 4, sai impresso 3164-4!

você pode verificar por que está dando esse erro

Mario Amaral

unread,
Jul 3, 2013, 11:55:09 AM7/3/13
to caelum-st...@googlegroups.com
Oi Adriano

Pode abrir uma issue por favor?


Informe para qual banco vc está gerando o boleto, e qual método vc está usando para informar a conta e o dígito?

Assim corrigimos e mantemos o histórico dos bugs! :)

Obrigado!
Mário do Amaral Gonçalves


--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

Adriano Aguiar

unread,
Jul 3, 2013, 11:58:06 AM7/3/13
to caelum-st...@googlegroups.com
acabei de gerar outro aqui, deu certo eu estava informando 6 zero ai deu esse erro, vc tem algum exemplo de gerar ele via servlet!


--
You received this message because you are subscribed to a topic in the Google Groups "Caelum Stella User" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/caelum-stella-user/_lJZGyN04Ak/unsubscribe.
To unsubscribe from this group and all its topics, send an email to caelum-stella-u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages