Minha classe NÃO funciona para Jpasperreport abrir XML [RESOLVIDO]

Ola pessoal

No IReport funciona tudo certo, mostra o relatorio, com Datasource XML. (xpath)

coloquei todos os jar do ireport na minha pasta
compila tudo certo, mas na hora de executar mostra este erro
que nao encontrou esta classe

ams@ams-lindberg:~/iReport-4.1.1/teste$ ./r
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRDataSource
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JRDataSource
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: opencarrego.  Program will exit.

-------------- aqui estar minha classe ---------------

import java.io.IOException;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import javax.swing.text.BadLocationException;
import javax.swing.text.rtf.RTFEditorKit;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
//import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JasperPrintManager;

import net.sf.jasperreports.engine.data.JRXmlDataSource;

public class opencarrego {

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

        try {

			String relatorio = "report3.jasper";

		JRXmlDataSource xml =
			new JRXmlDataSource("nf.xml", 
								"/nfeProc/NFe/infNFe/det/prod");

			JasperPrint jp = JasperFillManager.fillReport(relatorio, new HashMap(),xml);
			JasperViewer.viewReport(jp, false);     


	    } catch (Exception e) {
        		System.out.println("Ocorreu um erro: " + e.toString() );
         		e.printStackTrace();
      	}
     }    
}

Obrigado pessoal …

http://javadevilopers.blogspot.com/2009/01/guia-jasperreports-ireport-xml-em-5.html

acho q esse link pode te ajudar.

att,

pedruhenrik, valeu a ajuda … mas estou fazendo por este link …
existe algum pacote para o xpath ?

Mestre, por um acaso não tens jars duplicados (ou de versões diferentes) aí dentro, não?
Já me aconteceu, mas é quase um chute hehe
Abraço, mestre!

LindBerg,

Como você está rodando sua app? Pelo eclipse mesmo? Conferiu o BuildPath?

leoramos - tem jar duplicado nao, eu copiei todos da pasta ireport …

fabio - estou fazendo tudo pelo prompt shell no Desktop Ubuntu 10.10

nós estamos sempre aprendendo … obg pela atenção

Compilando - codebyte
javac opencarrego.java -cp “.:ireport/modules/ext/iText-2.1.7.jar:…/ireport/libs/xalan.jar:…/ireport/modules/ext/jasperreports-4.1.1.jar:…/ireport/modules/ext/commons-javaflow-20060411.jar:…/ireport/modules/ext/commons-beanutils-1.8.2.jar:…/ireport/modules/ext/commons-logging-1.1.jar:…/ireport/modules/ext/commons-collections-3.2.1.jar:…/ireport/modules/ext/commons-digester-1.7.jar:…/ireport/modules/ext/groovy-all-1.7.5.jar:…/ireport/modules/ext/batik-xml.jar:…/ireport/modules/ext/jdt-compiler-3.1.1.jar:…/ireport/modules/ext/barcode4j-2.0.jar:…/ireport/modules/ext/xml-apis.jar:…/ireport/modules/ext/xml-apis-ext.jar”

Executando
java opencarrego -cp “.:ireport/modules/ext/iText-2.1.7.jar:…/ireport/libs/xalan.jar:…/ireport/modules/ext/jasperreports-4.1.1.jar:…/ireport/modules/ext/commons-javaflow-20060411.jar:…/ireport/modules/ext/commons-beanutils-1.8.2.jar:…/ireport/modules/ext/commons-logging-1.1.jar:…/ireport/modules/ext/commons-collections-3.2.1.jar:…/ireport/modules/ext/commons-digester-1.7.jar:…/ireport/modules/ext/groovy-all-1.7.5.jar:…/ireport/modules/ext/batik-xml.jar:…/ireport/modules/ext/jdt-compiler-3.1.1.jar:…/ireport/modules/ext/barcode4j-2.0.jar:…/ireport/modules/ext/xml-apis.jar:…/ireport/modules/ext/xml-apis-ext.jar”

“Suspeitei desde o princípio”. =)
eheh

O problema é que o parâmetro -cp não está conseguindo encontrar o jar ou até mesmo todos eles.(Óbvio… rs)

Dê uma fuçada aí pra ver porque não encontra.

Até mais.

hehe

o problema é que eu não sei qual ! …
tu sabe qual o jar ?
será que precisa do pacote do xpath e onde encontrar ?

ja pesquisei muuuuito e ainda não encontrei …

O JAR que possui essa classe que está reclamando é o: …/ireport/modules/ext/jasperreports-4.1.1.jar

valeu fabio, vou mexer mais …

não sei mais o que fazer …

uuheahu…

Lindberg, você quer compactar tudo, colocar em algum local para eu baixar e tentar rodar?

sim vou fazer isso agora mesmo

ta ai, so não da pra mandar os .jar por aqui …

pretendo criar um PDF e enviar por email, isso é pra NFe.

Disponibiliza ou me manda os jars por email
fabiozoroastro[at]gmail

vou disponibilizar na versão IReport 4.1.1
12.5 mb
link: http://www.4shared.com/file/33nSK1fo/arquivos_jar_ireport.html

se faltar alguma fala

ta ai fabio

Lindberg,

tenta assim:

java -cp ".:ireport/modules/ext/iText-2.1.7.jar:../ireport/libs/xalan.jar:../ireport/modules/ext/jasperreports-4.1.1.jar:../ireport/modules/ext/commons-javaflow-20060411.jar:../ireport/modules/ext/commons-beanutils-1.8.2.jar:../ireport/modules/ext/commons-logging-1.1.jar:../ireport/modules/ext/commons-collections-3.2.1.jar:../ireport/modules/ext/commons-digester-1.7.jar:../ireport/modules/ext/groovy-all-1.7.5.jar:../ireport/modules/ext/batik-xml.jar:../ireport/modules/ext/jdt-compiler-3.1.1.jar:../ireport/modules/ext/barcode4j-2.0.jar:../ireport/modules/ext/xml-apis.jar:../ireport/modules/ext/xml-apis-ext.jar" opencarrego

Se não funcionar, coloque um ponto e vírgula logo após a aspas que fecha o -cp

[code]
java -cp ".:ireport/modules/ext/iText-2.1.7.jar:../ireport/libs/xalan.jar:../ireport/modules/ext/jasperreports-4.1.1.jar:../ireport/modules/ext/commons-javaflow-20060411.jar:../ireport/modules/ext/commons-beanutils-1.8.2.jar:../ireport/modules/ext/commons-logging-1.1.jar:../ireport/modules/ext/commons-collections-3.2.1.jar:../ireport/modules/ext/commons-digester-1.7.jar:../ireport/modules/ext/groovy-all-1.7.5.jar:../ireport/modules/ext/batik-xml.jar:../ireport/modules/ext/jdt-compiler-3.1.1.jar:../ireport/modules/ext/barcode4j-2.0.jar:../ireport/modules/ext/xml-apis.jar:../ireport/modules/ext/xml-apis-ext.jar"; opencarrego
[/code]

Eu não havia percebido que você estava colocando a classe antes de definir o classpath.
=)

Se não funcionar desse jeito, avise!

opa, o erro mudou utilizeia primeira opção, a segunda nao funfa.

Exception in thread "main" java.lang.NoClassDefFoundError: net/sourceforge/barbecue/BarcodeException
	at net.sf.jasperreports.components.barbecue.BarbecueFillComponent.setBarcodeImage(BarbecueFillComponent.java:138)
	at net.sf.jasperreports.components.barbecue.BarbecueFillComponent.fill(BarbecueFillComponent.java:108)
	at net.sf.jasperreports.engine.fill.JRFillComponentElement.fill(JRFillComponentElement.java:148)
	at net.sf.jasperreports.engine.fill.JRFillElementContainer.fillElements(JRFillElementContainer.java:570)
	at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:401)
	at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:347)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:329)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:263)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:129)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)
	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:540)
	at opencarrego.main(opencarrego.java:32)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.barbecue.BarcodeException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 15 more

LindBerg, esse erro também deu aqui.
=)

Perceba agora que essa BarcodeException foi lançada pq ocorreu alguma exceção na geração do relatório. Ou seja, encontrou os jars para a geração do relatório.

Você agora tem que descobrir qual é o jar que tem esse BarcodeException e adicioná-lo ao classpath.

Abraço.