2011-04-14 77 views
1

我正在使用birt-2_6_1和tomcat 7以及eclipse IDE來生成報告。我已經完成了生成圖表的編碼,並將它們保存在TEM位置作爲png格式。但是當我在可下載的pdf文件中導出這些圖像時,它不會將這些圖像以pdf格式或excel格式顯示到下載的文件中。是拋出這個異常:java.net.MalformedURLException:無協議:<user url>

java.net.MalformedURLException: no protocol: /Softwares/new_tomcat/tomcat7/temp/jfreechart-299441806335424490.png 
    at java.net.URL.<init>(URL.java:567) 
    at java.net.URL.<init>(URL.java:464) 
    at java.net.URL.<init>(URL.java:413) 
    at org.eclipse.birt.report.engine.emitter.ImageReader.readImage(ImageReader.java:179) 
    at org.eclipse.birt.report.engine.emitter.ImageReader.read(ImageReader.java:80) 
    at org.eclipse.birt.report.engine.nLayout.area.impl.ImageAreaLayout.initialize(ImageAreaLayout.java:83) 
    at org.eclipse.birt.report.engine.nLayout.area.impl.ImageAreaLayout.layout(ImageAreaLayout.java:72) 
    at org.eclipse.birt.report.engine.nLayout.LayoutEngine.startContent(LayoutEngine.java:488) 
    at org.eclipse.birt.report.engine.emitter.ContentEmitterAdapter.startImage(ContentEmitterAdapter.java:174) 
    at org.eclipse.birt.report.engine.emitter.CompositeContentEmitter.startImage(CompositeContentEmitter.java:274) 
    at org.eclipse.birt.report.engine.emitter.ContentEmitterUtil.startContent(ContentEmitterUtil.java:74) 
    at org.eclipse.birt.report.engine.layout.html.buffer.HTMLPageBuffer.startContent(HTMLPageBuffer.java:116) 
    at org.eclipse.birt.report.engine.layout.html.buffer.TableBreakBuffer.startContent(TableBreakBuffer.java:287) 
    at org.eclipse.birt.report.engine.layout.html.HTMLLeafItemLM.start(HTMLLeafItemLM.java:67) 
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:139) 
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70) 
    at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) 
    at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99) 
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180) 
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77) 
    at com.i10n.fleet.util.ReportExporter.**exportReport(ReportExporter.java:98**) 
    at com.i10n.fleet.web.controllers.ExportReportOperations.**ExportVehicleReport(ExportReportOperations.java:596)** 
    at com.i10n.fleet.web.controllers.ExportReportOperations.**generateVehicleReport(ExportReportOperations.java:497)** 
    at com.i10n.fleet.web.controllers.ExportReportsController.**processRequest(ExportReportsController.java:131)** 
    at com.i10n.fleet.web.controllers.ExportReportsController.**handleRequestInternal(ExportReportsController.java:71)** 
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) 
    at com.i10n.fleet.web.controllers.CascadedFormController.handleRequest(CascadedFormController.java:47) 
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:859) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:282) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:357) 
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1687) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:619) 

所有上述粗體字母文件我用於此任務。但它是表示該行錯誤:

vehicleReportTask.run(); 

其中vehicleReportTask是被保持PNG圖像中報告diplay的RunAndRenderTask。這就是我如何存儲到任務:

vehicleReportTask.setParameterValue("image", imgPath + filename); 

它給從很久了同樣的錯誤了,所以如果有人能幫助我解決這個問題,這將是veru多少對我很有幫助。如果有任何需要作爲輸入可隨意問。 我可以寄給你的需要我的電子郵件ID是:[email protected]

+0

嘗試用PDF/Excel文件生成代碼中的png圖像的絕對路徑。 – Senthil 2011-04-14 10:37:19

回答

3

java.net.MalformedURLException: no protocol意味着缺乏協議的,像file://http://

嘗試通過如下URL:file:///Softwares/new_tomcat/tomcat7/temp/jfreechart-299441806335424490.png,在imgPath上添加協議前綴。

相關問題