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
[code]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();
}
}[/code]
o erro o corre nesta linha
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters, jrds);
Grato.