2012-04-24 88 views
1

我正在开发使用Netbeans 7.1。贾斯珀报告:资源未找到

在我的碧玉报告中,我有子报告。 它在一个地方完美地工作。我复制并在另一个地方粘贴,现在显示了这个错误:

net.sf.jasperreports.engine.JRException: Resource not found at : D:\ShareMarket\build\web\WEB-INF\classes\custom\kksharemarket/contractDetail.jasper 
at net.sf.jasperreports.repo.RepositoryUtil.getResource(RepositoryUtil.java:155) 
at net.sf.jasperreports.repo.RepositoryUtil.getReport(RepositoryUtil.java:126) 
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport(JRFillSubreport.java:317) 
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:347) 
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:275) 
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257) 
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:473) 
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2021) 
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:755) 
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:265) 
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746) 
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58) 
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417) 
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:281) 
at org.apache.jsp.reportmgr_jsp._jspService(reportmgr_jsp.java:966) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
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:169) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
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.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
at java.lang.Thread.run(Thread.java:619) 
+0

Krushnakant,只是一个快速记录D:\ ShareMarket \ build \ web \ WEB-INF \ classes \ custom \ kksharemarket/contractDetail.jasper doe因子/报表名称之前的/不正确。 – 2012-04-24 07:33:40

+0

@Krushnakant你可以看到这篇文章:http://stackoverflow.com/questions/4825726/how-to-load-subreport-resources-with-jasper&http://stackoverflow.com/questions/9785451/generate-jasper -REPORT与 - 子报表 - 从Java的 – 2012-04-24 09:35:43

回答

2

路径D:\ShareMarket\build\web\WEB-INF\classes\custom\kksharemarket是可疑的。它应该是/custom/kksharemarket,因为它位于应用程序的类路径中。应用程序可能打包在jar/war中,而文件路径不会。可能资源不是通过文件系统提取的,而是在类路径上。通常这就是“资源”在java中的含义。

因为目录结构存在,所以它在第一次开发中起作用。

1
D:\ShareMarket\build\web\WEB-INF\classes\custom\kksharemarket/contractDetail.jasper 

                  ^^^ 

我猜你硬编码文件分隔符组成碧玉文件路径时。