JBoleto - Caixa Econômica

Boa tarde a todos!

Estou desenvolvendo uma aplicação utilizando o JBoleto, e neste primeiro momento estou tentando gerar os boletos da Caixa Econômica.

Ao executar o código, acontece a seguinte excessão:

java.lang.NumberFormatException: null
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at org.jboleto.bancos.CaixaEconomica.getAgenciaCodCedenteFormatted(CaixaEconomica.java:133)
	at org.jboleto.control.PDFGenerator.addBoleto(PDFGenerator.java:202)
	at org.jboleto.JBoleto.addBoleto(JBoleto.java:110)
	at br.com.quatorweb.sistema.server.LoginServiceImpl.gerarBoleto(LoginServiceImpl.java:497)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Alguém sabe me dizer a origem deste problema?

A seguir o código completo que utilizei para tentar gerar o boleto.

      JBoletoBean jBoletoBean = new JBoletoBean();
		
	jBoletoBean.setDataDocumento("31/05/2007");  
        jBoletoBean.setDataProcessamento("31/05/2007");        
              
        jBoletoBean.setCedente("");    
  
        jBoletoBean.setNomeSacado("Fernando");  
        jBoletoBean.setEnderecoSacado("Rua Minas Gerais");          
        jBoletoBean.setBairroSacado("Centro");  
        jBoletoBean.setCidadeSacado("Maringá");  
        jBoletoBean.setUfSacado("PR");  
        jBoletoBean.setCepSacado("87020-501");  
        jBoletoBean.setCpfSacado("87524988753");  
        jBoletoBean.setCarteira("57");  
        jBoletoBean.setLocalPagamento("ATE O VENCIMENTO, PREFERENCIALMENTE NA CAIXA ECONOMICA");  
        jBoletoBean.setLocalPagamento2("APOS O VENCIMENTO, SOMENTE NA CAIXA ECONOMICA");  
          
        Vector descricoes = new Vector();  
        descricoes.add("Descricao 1");  
        descricoes.add("Descricao 2");  
        descricoes.add("Descricao 3");  
        descricoes.add("Descricao 4");  
        jBoletoBean.setDescricoes(descricoes);  
          
        jBoletoBean.setInstrucao1("APOS O VENCIMENTO COBRAR MULTA DE 2%");  
        jBoletoBean.setInstrucao2("APOS O VENCIMENTO COBRAR R$ 0,50 POR DIA DE ATRASO");  
        jBoletoBean.setInstrucao3("");  
        jBoletoBean.setInstrucao4("");  
  
        jBoletoBean.setAgencia("0155");  
        jBoletoBean.setContaCorrente("13877");  
        jBoletoBean.setDvContaCorrente("4");  
          
        jBoletoBean.setCarteira("82");  
        jBoletoBean.setCodigoOperacao("870");  
        jBoletoBean.setCodigoFornecidoAgencia("00000324");  
          
        jBoletoBean.setNossoNumero("19525086",8);  
        jBoletoBean.setNoDocumento("987656123");  
          
        jBoletoBean.setValorBoleto("1.00");                  
        jBoletoBean.setDataVencimento("02/10/2007");  
          
        Generator generator = new PDFGenerator(jBoletoBean, JBoleto.CAIXA_ECONOMICA); 
        JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.CAIXA_ECONOMICA);          
        jBoleto.addBoleto();  
          
        jBoleto.closeBoleto("teste.pdf");

Muito Obrigado!
Fernando

Cara para a geração de boletos tem também o Bopepo do projeto JRimum:

Ele deve ter os bancos que vc utiliza e as recentes cobranças da caixa econômica em:

http://jrimum-community.googlegroups.com/web/JRimum-Bopepo-SNAPSHOT-20100805.jar

Além de gerar um boleto padrão sem esforço algum…

Se vc quiser personalizar o boleto, ele permite personalização através de templates PDFs.
Você pode usar o OpenOffice para desenhar o boleto e depois exportar para pdf. É simples.

Ver tutoriais.

Se precisar de ajuda e tiver dúvidas, no grupo o pessoal te ajuda. Eles são especialistas em boletos e arquivos bancários.

Mais informações sobre o Projeto Bopepo …

Bom dia Gilmar!

Eu precisaria gerar boletos para o Sicredi e Caixa Econômica. Infelizmente o Bopepo não oferece suporte ao Sicredi.
Eu já até conhecia esse projeto, mas só não o utilizo por este motivo…

Muito Obrigado ae pela sugestão!
Fernando

fyukio,

Dá uma olhada no Caelum Stella-Boleto, eu uso ele para gerar boletos para CEF nas carteiras 3, 9 e 82.
Caso o boleto não esteja conforme você precisa, você pode fazer um fork dele no github e ajustar conforme suas necessidades.

Olá Rodrigo!

Muito obrigado pela sugestão!
Vou dar uma pesquisada e fazer alguns testes no Caelum Stella-Boleto.

[]s
Fernando

Fala Fernando!

Cara acho que já faz um tempo que vc testou o Bopepo. Não?

Testa essa versão aí para o SICREDI também se for o caso:

http://jrimum-community.googlegroups.com/web/JRimum-Bopepo-SNAPSHOT-20100805.jar

Nessa versão já são suportados 16 bancos, é o mais completo atualmente, estamos só aguardando mais feedback do pessoal para lançar a versão final.

http://www.jrimum.org/bopepo/ticket/47

* #13 - Banco Real
* #14 - Itaú
* #15 - Unibanco
* #17 - Safra
* #18 - Mercantil
* #19 - HSBC
* #20 - BESC
* #21 - Banrisul
* #22 - Nossa Caixa S.A.
* #24 - Banestes
* #25 - BANCO SANTANDER S.A.
* #38 - Banco J. Safra
* #39 - Banco SICREDI
* #40 - CEF
* #48 - Banco Rural
* #56 - Banco Intermedium 

Se precisar de ajuda e tiver dúvidas, chega lá no grupo que o pessoal te ajuda.

Mais informações sobre o andamento do Projeto Bopepo … vc pode ver no Timeline.

Opa! Legal Gilmar! Realmente já faz um tempinho…

Mas eu entrei no site ontem e voltei hoje quando você citou o Bopepo, e na área “Por onde começar” na página inicial do projeto, existe um link destacado para a listagem de bancos suportados. Esta área está desatualizada então:
http://www.jrimum.org/bopepo/wiki/Componente/BancosSuportados

Mas muito obrigado ae! Vou testar e se der tudo certo utilizá-lo!
Fernando

alguém tem um DEMO de como fazer isso ?

Vídeo de personalização de boletos com Bopepo:

[youtube]http://www.youtube.com/watch?v=0kRa2wprDdQ[/youtube]

Outros tutorias …

http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais

Este vídeo mostra como gerar boletos personalizados através do componente Bopepo do Projeto JRimum. O vídeo foca num dos recursos mais interessantes, que é como adicionar campos dinâmicos, ou seja, campos que podem ter seus valores fornecidos em tempo de execução.

Como a edição do template é a mão-livre, o usuário tem total liberdade para alterar a disposição de informações, adicionar texto, imagens e novos campos, de forma estática ou dinâmica. Com isso é possível também criar outros estilos de boleto, como por exemplo um boleto carnê, envelope, estilo fatura de cartão de crédito etc, adaptando o boleto à sua realidade. Obs: É importante lembrar que alguns regras básicas definidas pela FEBRABAN têm de ser seguidas para que seu boleto possa ser homologado.

A ferramenta utilizada para a edição do template foi o OpenOffice (BR), mas isto não é obrigatório. Você pode usar outras ferramentas que trabalhem com formulários PDF, sem problemas, desde que, ao final do processo seja oferecido um template no formato PDF para o componente.

Mais informações em:
http://www.jrimum.org
http://www.jrimum.org/jrimum/wiki/Projeto/Download
http://www.jrimum.org/bopepo/wiki/Componente/Documentacao

Ferramentas utilizadas:

Eclipse Helios
OpenOffice 3.2 - Writer
JRimum-Bopepo-SNAPSHOT-20101124.jar e suas dependências

Projeto JRimum
Divulgado em 03/12/2010.