Problema com JasperReport

Galera sei que já postei vários tópicos, mais agora consegui evolui e parei com um problema que estou tendo na hora de pegar o caminho onde está localizado o arquivo .jasper no meu projeto, já debuguei e ele da NullPointException, alguém poderia me ajuda?

Só para informação, eu tenho uma pagina JSP com uma combobox com valores do banco, ele pega o id e joga para o requeste.getParameter(“id”) até tudo bem, mais quando vai JasperReport relatorioCompilado = (JasperReport)JRLoader.loadObject(jasper); ocorre um exceção, segue a classe:


package br.com.sein.relatorio;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;


public class GerarRelatorio extends HttpServlet{
		
		private final static long serialVersionUID = 1L;
		
	
		
		protected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
			
		
			
			String cod = request.getParameter("imprimir_analise");        
		
			
//		
			//ServletContext contex = this.getServletContext();
//			
//			String nomeDoArquivoCopilado = contex.getRealPath(nomeDoRelatorio);
			
			ServletContext context = this.getServletConfig().getServletContext();
			
			File jasper = new File( context.getRealPath("Sca-version7.jasper"));
		
		try{
		
			
			JasperReport relatorioCompilado = (JasperReport)JRLoader.loadObject(jasper);
					
					//JRLoader.loadObject(arquivo);
			
			Map<String, String> parametros = new HashMap<String, String>();
			
			
			parametros.put("parametro", cod);
					  
		    
		    
		    JasperPrint relatorioFinal = JasperFillManager.fillReport(relatorioCompilado, parametros);
		    
		    response.setContentType("application/pdf;charset=UTF-8");
		    
		    //Adequado para se enviar dados binários para o browser.
		    ServletOutputStream out = response.getOutputStream();
		
		    JasperExportManager.exportReportToPdfStream(relatorioFinal,out);
		    out.flush();
		
		}catch(IOException e){
			response.setContentType("text/plain");
			PrintWriter printWriter = response.getWriter();
			e.printStackTrace(printWriter);
			throw new ServletException(e);
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		}
}	
		

Já tentei colocando o arquivo jasper dentro de “WebContent/Relatorio/Sca-version7.jasper”

mas você alterou o getRealPath com o caminho mencionado ?

tenta fazer assim:

String caminhoRelatorio = this.getServlet().getServletConfig().getServletContext().getRealPath("caminhoDoSeuRelatorio/seuRelatorio.jasper");

JasperReport relatorio = (JasperReport) JRLoader.loadObject(caminhoRelatorio);

Vou tentar, estou quebrando a cabela aqui, ja já te digo a se deu certo !!!

Talvez esse exemplo te ajude

Cara na verdade eu já tentei dessa forma também, mais fiz assim e não funfou, não consegui entender de onde vem esse this,getServlet, seria a mesma coisa que eu fiz ?

[code]
ServletContext servletContext = request.getSession().getServletContext();

	try{
	
		JasperReport relatorioCompilado = (JasperReport)JRLoader.loadObject(servletContext.getRealPath("/Relatorio/Sca_version.jasper"));
		
	[/code]

furutani até que funfou eu acho, mais está dando outros erros na parte JasperPrint relatorioFinal = JasperFillManager.fillReport(is, parametros);

gera um erro na minha JSP na linha 165, mais nem tem linha 165. java.lang.NullPointerException

E outro é
java.lang.ClassNotFoundException: org.apache.commons.logging.Log
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)

Sabe dizer o porque ?

está faltando o arquivo commons-logging.jar no classpath da sua aplicação

Já está, sendo que o arquivo é commons-logging-1.0.4.jar, seria esse ?

O erro acontece quando eu carrego a página, sem mesmo clicar em gerar relatório, assim que carrego gerar o erro, sendo que não tem linha 165, mais funciona direitinho, sem dar erro na pagina, e sim apenas no console>


java.lang.NullPointerException
	at org.apache.jsp.index_jsp._jspService(index_jsp.java:165)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Quando mando gerar o relatorio da esse.


net.sf.jasperreports.engine.JRException: Class not found when loading object from InputStream
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:202)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:396)
	at br.com.sein.relatorio.GerarRelatorio.service(GerarRelatorio.java:63)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.components.table.StandardTable
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at java.io.ObjectInputStream.resolveClass(Unknown Source)
	at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.resolveClass(ContextClassLoaderObjectInputStream.java:75)
	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at java.util.ArrayList.readObject(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readArray(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
	at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:742)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:194)
	... 15 more

E eu coloquei assim.

  JasperPrint relatorioFinal = JasperFillManager.fillReport(is, parametros);    is é o caminho e parâmetro é que vem do resquest da pagina.

agora falta o .jar do jasperreport no lib :smiley:

Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.components.table.StandardTable  
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)  
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)  
    at java.lang.Class.forName0(Native Method)  
    at java.lang.Class.forName(Unknown Source) 

tem uma cópia no seu iReport onde ele foi instalado no caminho “ireport\modules\ext”, com o nome jasperreports-x.x.x

[]'s

Já coloquei, todas do iReport .

jasperreports-applet-4.5.0
jasperreports-fonts-4.5.0
jasperreports-javaflow-4.5.0
ant-1.7.1
antlr-2.7.5
todos os commos
jfreechart

Alguém ? Por favor quero ir embora para casa, só tem eu aqui na empresa e os seguranças hauaha.