Login Registre-se
ERRO AO GERAR DANFE - XML  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

Caros,

Estou tentando usar a função para gerar o DANFE a parti do XML que esta disponível aqui no fórum porem apos fazer todas as configurações ainda esta me aparecendo esse erro que não sei com corrigi, se alguém puder me dar uma ajuda eu agradeço.

run:
| ERROR: net.sf.jasperreports.engine.JRException: No report compiler set for language : null
| ERROR: java.lang.NullPointerException
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)



Esta mensagem foi editada 1 vez. Última atualização foi em 07/08/2012 11:44:46

jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline


Alguma LUZ.. alguém sabe que erro é esse e como resolver?





jvalssilva@gmail.com wrote:Caros,

Estou tentando usar a função para gerar o DANFE a parti do XML que esta disponível aqui no fórum porem apos fazer todas as configurações ainda esta me aparecendo esse erro que não sei com corrigi, se alguém puder me dar uma ajuda eu agradeço.

run:
| ERROR: net.sf.jasperreports.engine.JRException: No report compiler set for language : null
| ERROR: java.lang.NullPointerException
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)



jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

Alguém tem luz?





jvalssilva@gmail.com wrote:
Alguma LUZ.. alguém sabe que erro é esse e como resolver?





jvalssilva@gmail.com wrote:Caros,

Estou tentando usar a função para gerar o DANFE a parti do XML que esta disponível aqui no fórum porem apos fazer todas as configurações ainda esta me aparecendo esse erro que não sei com corrigi, se alguém puder me dar uma ajuda eu agradeço.

run:
| ERROR: net.sf.jasperreports.engine.JRException: No report compiler set for language : null
| ERROR: java.lang.NullPointerException
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)



ivandm

JavaC Membro
[Avatar]

Membro desde: 05/02/2012 12:00:22
Mensagens: 101
Offline

Já verificou os import pra gerar o relatório?

jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

Sim, Ivan


Já verifiquei os imports, e o pior que não aparece erro nenhum.. só quando tento executar a class.







ivandm wrote:Já verificou os import pra gerar o relatório?
thiago oliveira

JavaC Membro

Membro desde: 28/02/2012 16:25:27
Mensagens: 101
Offline

a menssagem e so isso ? nao tem mais nada
voce nao esta tentando pegar um valor null ??
ivandm

JavaC Membro
[Avatar]

Membro desde: 05/02/2012 12:00:22
Mensagens: 101
Offline

eu tentaria recompilar o relatório pelo ireport, atualizando as libs pra versão do teu ireport.
jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

é Thiago a mensagem é só essa mesmo e o XML que to usando é o mesmo que esta disponível aqui no fórum

thiago oliveira wrote:a menssagem e so isso ? nao tem mais nada
voce nao esta tentando pegar um valor null ??
jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

Ivan

Eu já fiz isso também. e nada...


ivandm wrote:eu tentaria recompilar o relatório pelo ireport, atualizando as libs pra versão do teu ireport.
ivandm

JavaC Membro
[Avatar]

Membro desde: 05/02/2012 12:00:22
Mensagens: 101
Offline

Posta o código pra ver se conseguimos ajudar...
jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

--------------------------- Essa é a classe ---------------------------------------






package jlive;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import org.w3c.dom.Document;
import org.w3c.dom.Node;

public class GerandoDanfe {

public static void DanFeNFe(String CaminhoXML, String ChaveNFe, String CaminhoLogo, String CaminhoPDF) {

try {
String fileXML = CaminhoXML;
String xml = lerXML(fileXML);
String logo = CaminhoLogo;

byte[] pdf = getDanfe(xml, logo);

String nomeArquivo = CaminhoPDF + "/" + ChaveNFe + ".pdf";
FileOutputStream fos = new FileOutputStream(nomeArquivo);
fos.write(pdf);
fos.close();
} catch (Exception e) {
error(e.toString());
}


}

private static String lerXML(String fileXML) throws IOException {
String linha = "";
StringBuilder xml = new StringBuilder();

BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(fileXML)));
while ((linha = in.readLine()) != null) {
xml.append(linha);
}
in.close();

return xml.toString();
}

public static Document getXml(String xml) {
try {
/**
* Gera um objeto DOM do xml
*/
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
return docBuilder.parse(new ByteArrayInputStream(xml.getBytes()));
} catch (Exception e) {
error("Erro ao formatar a string em xml.");
return null;
}
}

public static Map<String, Object> getFaturas(Document doc) {
Map<String, Object> map = new HashMap<String, Object>();

for (int i = 0; i < doc.getElementsByTagName("dup").getLength(); i++) {
/**
* Seta uma duplicata
*/
Node dup = doc.getElementsByTagName("dup").item(i);

/**
* Seta o numero
*/
Node nDoc = dup.getChildNodes().item(0);
String numero = nDoc.getFirstChild().getNodeValue();
map.put("FAT_NUMERO" + (i + 1), numero);

/**
* Seta a data
*/
Node nData = dup.getChildNodes().item(1);
String data = nData.getFirstChild().getNodeValue();

try {
map.put("FAT_VENCIMENTO" + (i + 1), new SimpleDateFormat("yyyy-MM-dd").parse(data));
} catch (Exception e) {
map.put("FAT_VENCIMENTO" + (i + 1), null);

}

/**
* Seta o valor
*/
Node nValor = dup.getChildNodes().item(2);
String valor = nValor.getFirstChild().getNodeValue();
map.put("FAT_VALOR" + (i + 1), Double.parseDouble(valor));
}
return map;
}

public static byte[] getDanfe(String xml, String logo) {
byte[] pdf = null;
try {
/**
* Documento XML.
*/
Document doc = getXml(xml);

String tipoImp = doc.getElementsByTagName("tpImp").item(0).getFirstChild().getNodeValue();
/**
* Local do relatorio jrxml
*/
String urlDanfe = tipoImp.equals("1") ? "retrato.jrxml" : "retrato.jrxml";
JasperDesign jasperDesign = JRXmlLoader.load(urlDanfe);
JasperReport jasper = JasperCompileManager.compileReport(jasperDesign);

/**
* Fonte de Dados.
*/
JRXmlDataSource ds = new JRXmlDataSource(doc, "/nfeProc/NFe/infNFe/det");

/**
* Parametros
*/
Map<String, Object> param = getFaturas(doc);
param.put("Logo", logo);

/**
* Gerando o relatorio
*/
JasperPrint print = JasperFillManager.fillReport(jasper, param, ds);

/**
* Exportando em pdf
*/
pdf = JasperExportManager.exportReportToPdf(print);
} catch (Exception e) {
error(e.toString());
pdf = null;
}
return pdf;
}

/**
* Log ERROR.
*
* @param error
*/
private static void error(String error) {
System.out.println("| ERROR: " + error);
}

/**
* Log INFO.
*
* @param info
*/
private static void info(String info) {
System.out.println("| INFO: " + info);
}
}




---------------------------------- Aqui é onde eu chamo ela e passo os parâmetros -----------------------



package jlive;

public class Live {

public static void main(String[] args) throws Exception {

String CaminhoXML = "C:/JavaC/XML/proc-nfe.xml";
String ChaveNFe = "27120805012787000125550010000010111077042320";
String CaminhoLogo = "C:/ABRIR XML.jpg";
String CaminhoPDF = "C:/Live/NF-e/Danfe-PDF";





GerandoDanfe DanfeNFe = new GerandoDanfe();
DanfeNFe.DanFeNFe(CaminhoXML, ChaveNFe, CaminhoLogo, CaminhoPDF);



}
}


ivandm

JavaC Membro
[Avatar]

Membro desde: 05/02/2012 12:00:22
Mensagens: 101
Offline

Confere o seguinte...

Nas propriedades do relatório : Report name - Propriedades, verifica a propriedade language, Se estiver Groovy, muda pra Java.

Vlw
jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

Ivan,

A propriedade já ta com o Valor "Java"

Vlw





ivandm wrote:Confere o seguinte...

Nas propriedades do relatório : Report name - Propriedades, verifica a propriedade language, Se estiver Groovy, muda pra Java.

Vlw
jvalssilva@gmail.com

JavaC Membro
[Avatar]

Membro desde: 20/03/2012 11:46:30
Mensagens: 33
Offline

Ivan,

Cara tem mais alguma luz?






jvalssilva@gmail.com wrote:Ivan,

A propriedade já ta com o Valor "Java"

Vlw





ivandm wrote:Confere o seguinte...

Nas propriedades do relatório : Report name - Propriedades, verifica a propriedade language, Se estiver Groovy, muda pra Java.

Vlw
ivandm

JavaC Membro
[Avatar]

Membro desde: 05/02/2012 12:00:22
Mensagens: 101
Offline

Bom dia Blz!!!

Cara, ultimos dias foi feia a pegada, correria...

Olha... tentei analisar o código mas ta dificil... hehe...

Vou ter que pegar esse teu codigo e executar ele...

consegue me passar todo código e xml?
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team