2015-06-17 3 views
-1

Я новый участник разработки веб-приложений в Java, и для этого я использую сетевые компоненты.Почему сервлет не мог получить отчет о яшме?

Я создал веб-приложение для печати отчета о яшме на стороне клиента. Для этой цели я использовал сервлет. Здесь я получил выше проблемы. Я дал путь к файлу по-разному. Но, наконец, я должен указать путь к файлу с текущим рабочим каталогом (разделом). Но я хочу дать ему путь к папке src.

Также я дал этот путь с именем проекта. Но я получил следующее исключение.

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: Jasper\JasperReport\src\java\jasper\Report.jrxml (The system cannot find the path specified) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:222) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:193) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:184) 
    at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:224) 
    at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:539) 
    at jasper.Show.processRequest(Show.java:61) 
    at jasper.Show.doGet(Show.java:113) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.io.FileNotFoundException: Jasper\JasperReport\src\java\jasper\Report.jrxml (The system cannot find the path specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:217) 
    ... 28 more 
Jasper\JasperReport\src\java\jasper\Report.jrxml 
  1. пункт Список

ответ

0

Было бы легче помочь вам, если вы вставили фрагмент кода. Но я все равно попробую.

Метод JasperCompileManager.compileReportToFile принимает в качестве аргумента путь к файлу jrxml, либо абсурдный, либо относительный к рабочему каталогу. И я думаю, вы не должны использовать этот метод в этом случае.

В вашем случае я думаю, что было бы лучше использовать что-то вроде этого:

InputStream jrxmlFileStream = getClass.getResourceAsStream("/path/to/file.jrxml"); 
// this path should be relative to src folder 
JasperCompileManager.compileReportToStream(jrxmlFileStream, reportFileOutputStream); 
// reportFileOutputStream - an OutputStream that writes to destination file 

(я опущена здесь любой обработки исключений или ресурсов закрытия)

+0

: - Строка jsaperFile = "C: \\ Users \\ пользователь \\ Desktop \\ Terance \\ Jasper \\ JasperReport \\ \\ ЦСИ ява \\ яшма \\ Report.jrxml "; и это для отчета jasper, String report = JasperCompileManager.compileReportToFile (jsaperFile); – Barrier

+0

@Barrier Вы должны добавить указанный комментарий к самому актуальному вопросу. – Arasu

Смежные вопросы