IReport Web

0 respostas
W

Bom Dia!

Criei um relatório pelo ireport usando javaBean, fiz a chamada usando um servilet e esta dando um exception

GRAVE: Servlet.service() for servlet [ServletReport] in context with path [/reports] threw exception
java.lang.NullPointerException
	at br.com.cipolatti.infrastructure.servlets.ServletReport.service(ServletReport.java:82)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:257)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1764)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
este é meu servilet
public class ServletReport extends HttpServlet {

	private ServletContext sc;
	
	private FactoryService factoryService = new FactoryService();

	public void init(ServletConfig config) throws ServletException {
		super.init(config);

		sc = config.getServletContext();
		
		WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(sc);

		AutowireCapableBeanFactory autowireCapableBeanFactory = webApplicationContext.getAutowireCapableBeanFactory();

		autowireCapableBeanFactory.configureBean(factoryService,"FactoryService");;

	}

	@SuppressWarnings("unchecked")
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		List<?> dados = new ArrayList();
		File reportFile = null;		
		HashMap parameters = new HashMap();
		
		String acao = request.getParameter("acao");
		String where = request.getParameter("where");
		
		if (acao.equals("chkGeral")) {		   
			dados = factoryService.relatorioCheckListService.filterReport(where);
			reportFile = new File(sc.getRealPath("WEB-INF/reports/chkGeral.jasper"));
		}
		
		if (acao.equals("memorial")) {		   
			dados = factoryService.relatorioMemorialService.filterReport(where);
			reportFile = new File(sc.getRealPath("WEB-INF/reports/memorial.jasper"));
		}
		
		byte[] bytes = null;			
		
		JRDataSource jrds = new 
		JRBeanCollectionDataSource(dados);
		
		try {
			bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters, jrds);
			
		} catch (JRException e) {
			e.printStackTrace();
		}

		if (bytes != null && bytes.length > 0) {
			response.setContentType("application/pdf");
			response.setContentLength(bytes.length);
			ServletOutputStream ouputStream = response.getOutputStream();
			ouputStream.write(bytes, 0, bytes.length);
			ouputStream.flush();
			ouputStream.close();
		}		
		
	}

o erro o corre nesta linha
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters, jrds);

Grato.

Criado 14 de setembro de 2011
Respostas 0
Participantes 1