[RESOLVIDO]Jasper Java No CSV source was provided

11 respostas Resolvido
eclipse
Kassioburgadon

Bom dia Pessoal,

Gostaria de utilizar o jasper para realizar o relatorios em java,
meu banco está em CSV, dentro do jasper está tudo certo,
só queria que o botão do java abrisse uma viewer, mas aparece essa mensagem

try {  
					   URL  arquivo = getClass().getResource("/report/Blank_A4_Landscape.jasper"); 
					   System.out.println(arquivo);
			           Map<String, Object> map = new HashMap<String, Object>();
			           map.put("nome","Kassio");
			           JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo);  
			           JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map); 
			           JasperViewer jrviewer = new JasperViewer(jasperPrint, false);  
			           jrviewer.setVisible(true); 
			           jrviewer.toFront();
			         }catch (Exception ex) {  
			            System.err.println(ex);
			        }

09:47:03.261 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRBaseFiller - Fill [telefone removido]: created for Blank_A4_Landscape
09:47:03.263 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRBaseFiller - Fill [telefone removido]: filling report
09:47:03.264 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRFillDataset - Fill [telefone removido]: Creating csv query executer
09:47:03.264 [AWT-EventQueue-0] WARN net.sf.jasperreports.engine.query.JRCsvQueryExecuter - No CSV source was provided.
09:47:03.265 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRVerticalFiller - Fill [telefone removido]: no data
09:47:03.265 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRFillDataset - Fill [telefone removido]: closing query executer

E em seguida “java.lang.NullPointerException”

11 Respostas

staroski

posta o StackTrace completo

Kassioburgadon

file:/C:/Users/kassio/workspace/HSID/bin/report/Blank_A4_Landscape.jasper
10:01:20.031 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.ExtensionsEnvironment - Instantiating extensions registry class net.sf.jasperreports.extensions.DefaultExtensionsRegistry
10:01:20.038 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Loading registries for cache key sun.misc.Launcher$AppClassLoader@73d16e93
10:01:20.038 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.util.JRLoader - Found resource jasperreports_extension.properties at jar:file:/C:/Users/kassio/Desktop/jasperreports-4.0.0.jar!/jasperreports_extension.properties in classloader sun.misc.Launcher$AppClassLoader@73d16e93
10:01:20.040 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Loading JasperReports extension properties resource jar:file:/C:/Users/kassio/Desktop/jasperreports-4.0.0.jar!/jasperreports_extension.properties
10:01:20.042 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Instantiating registry of type net.sf.jasperreports.extensions.DefaultExtensionsRegistryFactory for property net.sf.jasperreports.extension.registry.factory.default
10:01:20.042 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Instantiating extensions registry for default using factory class net.sf.jasperreports.extensions.DefaultExtensionsRegistryFactory
10:01:20.044 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Instantiating registry of type net.sf.jasperreports.governors.GovernorExtensionsRegistryFactory for property net.sf.jasperreports.extension.registry.factory.governor
10:01:20.044 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Instantiating extensions registry for governor using factory class net.sf.jasperreports.governors.GovernorExtensionsRegistryFactory
10:01:20.045 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Instantiating registry of type net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory for property net.sf.jasperreports.extension.registry.factory.components
10:01:20.045 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.extensions.DefaultExtensionsRegistry - Instantiating extensions registry for components using factory class net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory
10:01:20.106 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRBaseFiller - Fill 289696607: created for Blank_A4_Landscape
10:01:20.157 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRBaseFiller - Fill 289696607: filling report
10:01:20.161 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRFillDataset - Fill 289696607: Creating csv query executer
10:01:20.165 [AWT-EventQueue-0] WARN net.sf.jasperreports.engine.query.JRCsvQueryExecuter - No CSV source was provided.
10:01:20.169 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRVerticalFiller - Fill 289696607: no data
10:01:20.170 [AWT-EventQueue-0] DEBUG net.sf.jasperreports.engine.fill.JRFillDataset - Fill 289696607: closing query executer
java.lang.NullPointerException

staroski

Não tem nada após esse NullPointerException?

Você não pôs um printStackTrace no tratamento da exceção. :frowning:

} catch (Exception ex) {
    System.err.println(ex); // isso aqui não diz nada de útil
}

Faça assim:

} catch (Exception ex) {
    ex.printStackTrace();
}
Kassioburgadon

Foi mal, tinha colocado na outra função, segue:

java.lang.NullPointerException

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:144)

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:118)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:435)

at hsid.Hsid$30.actionPerformed(Hsid.java:5736)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue$4.run(Unknown Source)

at java.awt.EventQueue$4.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Linha 5736: JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map);

staroski

Você não vai usar um data source pro seu Jasper?
Se vai usar somente o mapa de parâmetros, tenta assim:

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, new JREmptyDataSource());
Kassioburgadon

Fiz algumas alterações no código porém acontece o mesmo:

meuBean bean1 = new meuBean("João", 31);
	        	meuBean bean2 = new meuBean("Fernando", 43);
	        	meuBean bean3 = new meuBean("Luis", 24);
	        	Collection<meuBean> lista = new ArrayList<meuBean>();
	        	lista.add(bean1);
	        	lista.add(bean2);
	        	lista.add(bean3); 
				
				
				try {
					String caminho = "/relatorio/Flower_Landscape.jasper";
					InputStream relJasper = getClass().getResourceAsStream(caminho);
					JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
					
					Map parametro = new HashMap();
					JasperPrint impressao = null;
					
					impressao = JasperFillManager.fillReport(relJasper, parametro,ds);
					JasperViewer viewer = new JasperViewer(impressao,true);
					viewer.setVisible(true);
					
				} catch (Exception e2) {
					// TODO: handle exception
					e2.printStackTrace();
				}
java.lang.NullPointerException

at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:1034)

at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:1004)

at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)

at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBackground(JRVerticalFiller.java:1807)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:260)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)

at hsid.Hsid$30.actionPerformed(Hsid.java:5750)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue$4.run(Unknown Source)

at java.awt.EventQueue$4.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)
Kassioburgadon

Falta pouco, agora ele abre porém só consigo se adiciono os dados, queria que ele abri-se com os dados já incrementado no jasper

Com os dados fica assim:

Mas queria que ele ficasse assim.

meuBean bean1 = new meuBean("João", "31");
	        	meuBean bean2 = new meuBean("Fernando", "43");
	        	meuBean bean3 = new meuBean("Luis", "24");
	        	Collection<meuBean> lista = new ArrayList<meuBean>();
	        	lista.add(bean1);
	        	lista.add(bean2);
	        	lista.add(bean3); 
				
				
				try {
					String caminho = "/relatorio/Flower_Landscape.jasper";
					InputStream relJasper = getClass().getResourceAsStream(caminho);
					JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
					
					Map parametro = new HashMap();
					JasperPrint impressao = null;
					
					impressao = JasperFillManager.fillReport(relJasper, parametro,ds);
					JasperViewer viewer = new JasperViewer(impressao,true);
					viewer.setVisible(true);
					
				} catch (Exception e2) {
					// TODO: handle exception
					e2.printStackTrace();
				}
Kassioburgadon

Gostaria de usar o Filed $F{nome}
Quando chamo no java, ele retira essa field, só queria que ele carregasse esa Field,
O Jasper está pegando do banco de dados XML

Kassioburgadon

Se alguém souber estou parado nessa classe, ele chama o jasper, porém ele não encontra os dados do xml,

Dentro do jasper está como uma field de nome e idade, o xml encontra o csv

Mensagem de erro:
O documento não contém uma pagina

Banco.xml

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class Excel {
	
	public static void main(String[] args) throws JRException {
		Excel excel = new Excel();
	        Map parametros = new HashMap();
	        String relatorio = "/relatorio/Flower_Landscape.jasper";
	        InputStream relJasper = excel.getClass().getResourceAsStream(relatorio);
	        JasperPrint jasperPrint = JasperFillManager.fillReport(relJasper, parametros);            
	        JasperViewer view = new JasperViewer(jasperPrint, false);
	        view.setVisible(true);
		
		
	}
	

}
Kassioburgadon

Estou chegando próximo se alguém tiver uma ideia por qual motivo não está indo me ajuda
No segundo gráfico não está recebendo os valores do parâmetro do primeiro gráfico que é o main.

Java:

try {
			InputStream relJasper = getClass().getResourceAsStream("C://algumacoisa.jasper");
			JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(
					lista);

			Map<String, Object> parametro = new HashMap();
			JasperPrint impressao = null;
			parametro.put("SubDataSource", ds);

			impressao = JasperFillManager.fillReport(relJasper, parametro, ds);
			JasperViewer viewer = new JasperViewer(impressao, false);
			viewer.setVisible(true);

		} catch (Exception e2) {
			// TODO: handle exception
			e2.printStackTrace();
		}

Jrxml:

Quando executo:

Tentei seguir exemplo nesse site, mas, ele não traz resultado:

Kassioburgadon
Solucao aceita

Conseguir resolver alterando o parametro para:

parametro.put("SubDataSource", **new JRBeanCollectionDataSource((Collection<meuBean>) lista));**

Criado 5 de abril de 2019
Ultima resposta 11 de abr. de 2019
Respostas 11
Participantes 2