Я новичок в Java, и я сталкиваюсь с этой проблемой, которую я не могу понять. Я унаследовал этот проект и у меня есть следующий код в одном из моих скриптлетов:Java jasper report NullPointerException
DefaultLogger.logMessage("DEBUG path: "+ reportFile.getPath());
DefaultLogger.logMessage("DEBUG parameters: "+ parameters);
DefaultLogger.logMessage("DEBUG jr: "+ jr);
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, jr);
И я получаю следующие результаты (четвертая строки есть строка 287 в FootwearReportsServlet.doGet):
DEBUG path: C:\Development\JavaWorkspaces\Workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\RSLDevelopmentStandard\reports\templates\footwear\RslFootwearReport.jasper
DEBUG parameters: {[email protected]7af1, signature_path=images/logo_reports.jpg, submission_id=20070213154168780, [email protected]5795ce, logo_path=images/logos_3.gif, [email protected]2, test[email protected]1883d5f, signature_path2=images/logo_reports.jpg, [email protected], [email protected]504e0}
DEBUG jr: [email protected]b6
Apr 29, 2010 4:15:13 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet FootwearReportsServlet threw exception
java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:385)
at com.rsl.reports.FootwearReportsServlet.doGet(FootwearReportsServlet.java:287)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Я не могу понять, где нулевая ссылка. Из строк отладки видно, что каждый параметр имеет значение. Может ли это иметь в виду плохой путь к одному из изображений? Есть идеи? По какой-то причине мой сервер не запускается в режиме отладки в Eclipse, поэтому мне трудно понять это.
Какая версия JasperReports это? Глядя на точный файл исходного кода для этой версии, очень полезно. – doublep
скорее всего это: http://grepcode.com/file/repo1.maven.org/maven2/jasperreports/jasperreports/3.1.0/net/sf/jasperreports/engine/fill/JRFiller.java – MeBigFatGuy
Не могли бы вы опубликовать, как вы создаете источник данных «jr»? – Gordon