Problemas na geração de relatórios com Vraptor e Ireport

0 respostas
D

Estou tendo problemas na geração de relatórios utilizando Vraptor e Ireport. Na verdade estou no método de tentativa e erro, pois efetuando busca na net não consegui encontrar material o qual eu pudesse utilizar para me basear. Bom para explicar melhor segue abaixo os arquivos que montei para tentar gerar o relatório:

geraRel.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>


<html>
	<head>
		<script type="text/javascript" src="${dir}/js/relatorio_produto.js"></script>
	<head>
	<body>
		<form id="frmRel_Produto" title="Produto" type="rel" >
			<input type="text" name="relatorioproduto.produtoid" id="relatorioproduto.produtoid" value="${relatorioproduto.produtoid}"  />
			 <input type="button" style="cursor: pointer;" value="Gerar Relatorio" title="Gerar Relatorio" onclick="gera_rel_produto();" />
			</UI:line>
		<form>
	</body>	
</html>
relatorioproduto.js
function gera_rel_produto(){
	
	document.getElementById("frmRel_Produto").action = dir+"/relatorioproduto.doGeraRelatorio.do";
	document.getElementById("frmRel_Produto").submit();
}
RelatorioProdutoAction
public class RelatorioProdutoAction {
	
	HttpServletRequest request;
	HttpServletResponse response;
	
	
	public HttpServletRequest getRequest() {
		return request;
	}

	public void setRequest(final HttpServletRequest request) {
		this.request = request;
	}

	public void setResponse(final HttpServletResponse response) {
		this.response = response;
	}

	public HttpServletResponse getResponse() {
		return response;
	}

	public RelatorioProdutoAction(ServletContext context) {
		super(context);
	}
	
	@Valid
	@Parameter(create=true)	
	@Out
	private RelatorioProduto relatorioproduto;
	
	private Connection getConnection(){
	       Connection connection=null;
	  try {
	          //cria a conexão com o banco de dados
	          Class.forName("com.mysql.jdbc.Driver");
	          String db = "jdbc:mysql://localhost:3306/relatorios?user=root&password=";
	          connection = DriverManager.getConnection(db);
	         
	      } catch (SQLException ex) {
	          ex.printStackTrace();
	      } catch (ClassNotFoundException ex) {
	          ex.printStackTrace();
	      }
	          
	     return connection;  
	     
	       
	  }

                @Override
	public void doNew() {
		
	}
	
	public void doGeraRelatorio() {

		try {
			String caminho = "/WEB-INF/relatorios/";
			String relatorio = caminho+"Relatorio_Internacionalizado.jrxml";
			try {
      
				Connection connection = getConnection();
      
      
				HashMap parameters = new HashMap();
				parameters.put("produtoid", relatorioproduto.getProdutoid());  
				//parameters.put("Data", data);
				JasperReport jasperReport = JasperCompileManager.compileReport(relatorio);
				byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, parameters, connection);
				response.setContentType("application/pdf");
				response.setHeader("Content-disposition", "filename=Relatorio.pdf");
				ServletOutputStream ouputStream = response.getOutputStream();
				response.setContentLength(bytes.length);
				ouputStream.write(bytes, 0, bytes.length);
				ouputStream.flush();
				ouputStream.close();

				if(connection!=null)connection.close();
			} catch (SQLException ex) {
				Logger.getLogger("global").log(Level.SEVERE, null, ex);
			}
			catch (JRException e) {
				// display stack trace in the browser
				StringWriter stringWriter = new StringWriter();
				PrintWriter printWriter = new PrintWriter(stringWriter);
				e.printStackTrace(printWriter);
				response.setContentType("text/plain");
				response.getOutputStream().print(stringWriter.toString());
			} 

      
		}catch (IOException e1) {
			e1.printStackTrace();
		}
	}	
	
}
views.properties
#Relatorio Produto
relatorioproduto.doNew.ok = jsp/relatorioproduto/geraRel.jsp
Quando tento gerar o relatório ocorre o seguinte erro:
SEVERE: Servlet.service() for servlet vraptor2 threw exception java.lang.NullPointerException at br.com.douglas.action.RelatorioProdutoAction.doGeraRelatorio(RelatorioProdutoAction.java:120) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:61) at org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:32) at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72) at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:130) at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72) at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41) at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72) at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:57) at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72) at org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22) at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72) at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47) at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72) at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97) at org.vraptor.core.DefaultController.execute(DefaultController.java:46) at org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44) at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48) 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:128) 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:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)
Observei que o erro ocorre na linha: JasperReport jasperReport = JasperCompileManager.compileReport(relatorio); Mas não consegui identificar o problema.

agradeço se alguém puder me dar uma dica do que pode estar acontecendo, ou se alguém tiver algum material ou tutorial que possa me ajudar na geração de relatório utilizando Ireport e Vraptor.

Criado 16 de novembro de 2009
Respostas 0
Participantes 1