Eclipse + JasperStudio + Tomcat

Boa noite.

Estou tendo problema ao utilizar relatório do jasperstudio no servidor tomcat. Quando executo os relatórios pelo eclipse + tomcat ele funciona perfeitamente porém quando exporto o arquivo .war e publico no servidor tomcat os relatórios não abrem e não aparece nenhuma mensagem de erro no log do tomcat, alguém já passou por isso? Alguém tem alguma ideia do que pode estar acontecendo?

Como vc está chamando o relatório no código? Talvez seja o path do arquivo do relatório que esteja sendo usado da forma errada.

@Lucas_Camara, estou fazendo da seguinte forma:

public void imprimirBalancete2() throws JRException {

	String SOURCE_FOLDER = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/jasper/");
	String SOURCE_FOLDER_IMAGEM = FacesContext.getCurrentInstance().getExternalContext()
			.getRealPath("/resources/imagem/");
	String file = SOURCE_FOLDER + "JasperReport_A4_Balancete2.jrxml";
	System.out.println(file);
	String logo = SOURCE_FOLDER_IMAGEM + "logo.png";
	String nomeSistema = SOURCE_FOLDER_IMAGEM + "nomeSistema.png";

	Map<String, Object> parameters = new HashMap<String, Object>();
	... parameters...	

	JasperDesign jasperDesign = JRXmlLoader.load(file);
	JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
	JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
	JasperViewer.viewReport(jasperPrint, false);

}

Nunca usei dessa forma para carregar arquivo do classpath, talvez seja aqui que está o problema.

A forma que geralmente pessoal usa é assim:

InputStream report = getClass().getResourceAsStream("/resources/imagem/JasperReport_A4_Balancete2.jrxml");

Com o inputStream vc consegue compilar e executar o relatório usando a lib do jasperreports.

Se puder, dê uma olhada: https://www.baeldung.com/spring-jasper#1-compiling-reports


Como está a estrutura do seu projeto?

Obrigado @Lucas_Camara por me ajudar.

Fiz da forma que vc orientou e continua da mesma forma, funciona enquanto está no eclipse mas quando exporto e publico no tomcat não abre os relatórios, fiz assim agora:

InputStream input = getClass().getResourceAsStream("/jasper/JasperReport_A4_Balancete2.jrxml");
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ano", ano);
    ......
JasperDesign design = JRXmlLoader.load(input);
JasperReport report = JasperCompileManager.compileReport(design);
JasperPrint print = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource());
JasperViewer.viewReport(print, false);

Desta forma que fiz agora percebi que o diretório resources utilizado fica em “/src/resources” diferentemente do que eu estava pegando antes que ficava em “/src/webapp/resources”.

Percebi outra coisa, que quando tento abrir arquivos .pdf e .txt também só abrem em fase de projeto enquanto uso o eclipse mas quando publico no tomcat também não abre, o que poderia ser?

Será que precisa fazer alguma liberação no tomcat?

Realmente o arquivo de relatório não deveria está dentro de webapp mesmo não.

Vc quer dizer src/main/resources, certo? Se for, esse é o lugar correto para ficar esse tipo de arquivo. Carregando o arquivo desse lugar, deveria funcionar tanto pelo eclipse qto diretamente pelo tomcat. Isso pq o eclipse roda o projeto usando o próprio tomcat, por isso tem que funcionar em ambos os cenários.

Desculpe, errei ao digitar, o caminho que estão os relatórios agora é “src/main/resources”

Não estou entendendo o motivo de não abrir os relatórios… Eu utilizo o tomcat em “exe” como servidor e não o zip, será que tem alguma coisa a ver? Tentei em mais uma máquina em que instalei o tomcat executável e também não abriu os relatórios…

O fato de ser exe ou zip não deveria ser o problema, no final é o mesmo servidor. Veja nos logs do tomcat se está estourando algum exception.

Vc também pode ver se no war está o jrxml do relatório, basta vc abrir ele com um compactador de arquivo, como winzip, winrar, 7z, etc.

Verifiquei os logs do Tomcat e não há erros, acredito que o erro seja outro, continuo sem conseguir abrir arquivos com o projeto publicado no tomcat, tentei abrir um arquivo .pdf e enquanto o código está no eclipse o arquivo abre mas no tomcat o arquivo pdf também não abre. Estou usando JSF, JPA, CDI, Job (threads) acredito que algum desses recursos está impedindo de abrir arquivos, alguém tem alguma luz sobre isso?

@Lucas_Camara O arquivo jrxml está indo no arquivo war sim