Problemas com geração de código de barras no Jasper + iReport

Pessoal,

Gostaria de contar com a ajuda de vocês.
Preciso gerar um boleto em PDF com Jasper e Java (WEB), e já estou quase no término da minha tarefa, porém estou encontrando problemas com a geração de códigos de barra.

Vi que tem um tipo que é muito utilizado que é o “Interleaved 2 of 5”, porém estou um pouco perdido.
Já achei diversos exemplos na Internet, mas eles eram ou de aplicações stand-alone ou de geração de imagem em disco, o que não acho legal.
Achei uma classe na internet que trabalha com um jar chamado barbecue-1.1.jar, porém ele gera a imagem em disco. Acredito que pode haver um problema caso duas usuários consigam chamar a geração do PDF de Boleto ao mesmo mili-segundo. Quase impossível, mas pode ocorrer. Quero evitar esse tipo de problema.

Um amigo meu que trabalha comigo utilizou essa solução de geração de imagem pois na versão 0.4 do iReport o código de barras não vinha com o QUIET ZONE que a FENABAN obriga ter.

Estou usando no momento a versão 1.2.0 do iReport, e acredito que isto já esteja corrigido. O problema é que eu não consigo nem exibir o PDF. Adicionei o objeto de código de barras no relatório e em suas configurações coloco ele pegando o valor de um atributo do meu VO que representa a CCB.
Esse atributo é do tipo String e possui a linah digitável que eu pego de um serviço CICS, porém sem espaços em branco e pontos.

[color=red]Barcode expression: $F{codigoBarra}[/color]

Configurei o código de barras como Int2of5 no atributo “Type” da aba “Barcode”.

No meu lib do WEB-INF possuo os seguintes .jar do jasper:
. jasperreports-1.2.0.jar
. itext-1.02b.jar
. barbecue-1.1.jar

A geração do meu boleto em PDF fiz da seguinte maneira:
[color=brown]
private void gerarBoleto(CcbVO ccb, HttpServletResponse response) throws GeracaoPDFBoletoException {
byte[] arquivoPdf = null;

	List beans = new ArrayList();
	beans.add(ccb);
	JRDataSource jrds = new JRBeanArrayDataSource(beans.toArray());

	//Geração de código de barra
	//this.gerarCodigoBarra(ccb.getCodigoBarra());

	String nomeArquivo =
		"boleto_"
			+ Mascara.getValorFormatado(String.valueOf(ccb.getCdSucursal()), "###")
			+ "-"
			+ Mascara.getValorFormatado(String.valueOf(ccb.getNrProposta()), "##########")
			+ "-"
			+ Mascara.getValorFormatado(String.valueOf(ccb.getNrItem()), "####")
			+ ".pdf";

	try {
		InputStream stream = getServlet().getServletContext().getResourceAsStream(ApplicationResources.VALUE_PATH_RELATORIO_BOLETO_PDF);
		JasperReport relatorio = (JasperReport) JRLoader.loadObject(stream);
		JasperPrint impressao = JasperFillManager.fillReport(relatorio, new HashMap(), jrds);
		arquivoPdf = JasperExportManager.exportReportToPdf(impressao);
		
	} catch (JRException jre) {
		throw new GeracaoPDFBoletoException(jre);
	}

	response.reset();
	response.setContentType("application/x-msdownload");
	response.setHeader("Content-Disposition", "attachment; filename=" + nomeArquivo);
	response.setContentLength(arquivoPdf.length);
	try {
		response.getOutputStream().write(arquivoPdf);
		response.getOutputStream().flush();
		response.getOutputStream().close();
	} catch (IOException ioe) {
		throw new GeracaoPDFBoletoException(ioe);
	}
}

[/color]

O erro que estou recebendo ao chamar a geração do PDF é:
[color=blue]
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(13,$F{codigoBarra},false,false,null,0,0) [/color]

Alguém poderia me ajudar?

Abração galera.
Ricardo

Da uma olhada nete topico as vezes da alguam luz.

http://www.guj.com.br/posts/list/35468.java