sexta-feira, junho 01, 2012

Cache de classes do NetBeans

Levei  uma surra do Jasper para exibir um relatório cujos dados provém de um xml...

caso você também tenha apanhado um pouco  com esse erro:
Exception in thread "main" java.lang.NoClassDefFoundError:  
org/apache/xpath/CachedXPathAPI
a biblioteca xalan.jar é necessária para que o Jasper faça a leitura do xml. XML... não gosto muito da verborrágia do padrão, mas é melhor que passar uma conexão com o banco para o Jasper e depois ter que manter os muitos selects atualizados.

O arquivo xml é passado para o Jasper da mesma forma que uma connection: via hashmap.
Eu estava utilizando uma versão antiga(3.algumaCoisa) e resolvi atualizar (4.5), mas na hora de utilizar o xml surgiu uma dúvida: duas classes em pacotes diferentes .. =/

JRXPathQueryExecuterFactory de onde?

No meio do caminho havia um jar
havia um jar no meio do caminho

Solução: verificar o classpath.
...
Nada de velho, no classpath apenas classes da versão mais recente: 4.5

De onde vêm então? Abra a declaração da classe e na barra de status vai aparecer a localização...
Como faz para saber de onde vem a classe errada?
tentei o Clean + Build e nada...
precisei limpar o cache do NetBeans.

saldo: 1,5 hora perdida, conhecimento inútil adquirido, um post para lembrar que o trivial pode demorar mais que o planejado