Problema em getResourcerAsStream()

Opa :smiley:

Estou criando um relatório e preciso obter meu arquivo .jasper. Bom, vou tentar descrever o cenário pra ficar mais fácil de ajudar:

Minha aplicação está empacotada num EAR e e o arquivo .jasper está dentro da pasta resources do pacote WAR. No momento que eu faço o deploy, o ear explode e dentro dele é explodido a pasta do WAR.

Inicialmente, eu tentei fazer o seguinte:

InputStream inputStream = getClass().getResourceAsStream("/cad/resources/relatorios/RelatorioEtiqueta.jasper");

CAD eh o nome do projeto e os pacotes são CAD.EAR e CAD.WAR.

Como que eu posso pegar o que eu preciso?

Obrigado!

Ao invés de utilizar a pasta resources , utilize o caminho do Class-loader

Ex: crie um pacote br.com.minhaaplicacao.relatorios
Coloque todos os jasper dentro deste pacote em seguida busque da mesma forma que vc esta utilizando:

InputStream inputStream = getClass().getResourceAsStream("br/com/minhaaplicacao/relatorios/RelatorioEtiqueta.jasper");  

Depende muito de cada app-server de como ele explode o EAR/WAR.

Criei um pacote com o seguinte nome:

br.com.cad.mem.jasper.etiqueta

E tentei o seguinte:

InputStream inputStream = getClass().getResourceAsStream("br/com/cad/mem/jasper/etiqueta/RelatorioEtiqueta.jasper");

Ele continua trazendo null :frowning:

Vc tem alguma ideia do que posso estar fazendo de errado?

Cuidado que “br/com/…” é diferente de “/br/com/…”. Tente novamente, dessa vez com o “/” no começo.

Continua não obtendo :frowning:

InputStream inputStream = getClass().getResourceAsStream("/br/com/cad/mem/jasper/etiqueta/RelatorioEtiqueta.jasper");

Não sei se tem algo diferente, mas eu utilizo o OC4J.