2013-11-22 7 views
5

मुझे अपनी रिपोर्ट को एक्सएलएस के रूप में निर्यात करने में कुछ परेशानी है। पीडीएफ के रूप में निर्यात अच्छी तरह से काम करता है।java.lang.No.SuchMethodError: org.apache.poi.hssf.usermodel.HSSFWorkbook.createDataFormat() लॉर्ग/अपाचे/poi/hssf/usermodel/HSSFDataFormat;

  • JasperReports: 5.5.0
  • POI: 3.7
  • पंछी: 2.1.7

तो मैं नवीनतम JasperReports और Apache POI संस्करण में अपडेट करने की कोशिश की

लेकिन मुझे हमेशा अपवाद के बाद प्राप्त होता है:

java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFWorkbook.createDataFormat()Lorg/apache/poi/hssf/usermodel/HSSFDataFormat; 
    net.sf.jasperreports.engine.export.JRXlsExporter.openWorkbook(JRXlsExporter.java:284) 
    net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportReportToStream(JRXlsAbstractExporter.java:927) 
    net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportReport(JRXlsAbstractExporter.java:697) 
    com.phoenix.customermonitor.print.GenericDataSourceApp.xls(GenericDataSourceApp.java:290) 
    com.phoenix.customermonitor.print.GenericDataSourceApp.exportToFormat(GenericDataSourceApp.java:335) 
    com.phoenix.core.JasperReportHandlerAction.exportOrderMonitorOverview(JasperReportHandlerAction.java:242) 
    com.phoenix.customermonitor.action.OrderMonitorMainAction.execute(OrderMonitorMainAction.java:217) 
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) 
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) 
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) 
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) 
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) 
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) 
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) 
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 

निर्यात कोड

File sourceFile = new File(fileIn); 

JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 

String name = fileIn.substring(fileIn.lastIndexOf(System.getProperty("file.separator"))+1); 
name = name.substring(0, name.lastIndexOf(".")); 
File destFile = new File(fileOut); 

JRXlsExporter exporter = new JRXlsExporter(); 
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());  
exporter.exportReport(); 

कुछ शोध करने के बाद मैं कई अन्य संस्करण (4) की कोशिश की लेकिन मैं अभी भी यह त्रुटि प्राप्त। क्या किसी को समाधान पता है?

उत्तर

4

आपके पास अपने क्लास पथ में पुरानी संस्करण लाइब्रेरी है।

यदि जैस्पर रिपोर्ट lib-xxx.jar पर निर्भर करती है, तो सुनिश्चित करें कि आपके वर्ग पथ में कोई अन्य lib-yyy.jar नहीं है। आप जैस्पर डाउनलोड जार या pom.xm की समीक्षा करके ऐसा कर सकते हैं।

जैसा कि मुझे लगता है कि आपके वर्ग पथ में poi के कुछ पुराने संस्करण हैं।

+0

आपकी मदद के लिए धन्यवाद। मैंने कई बार इस समाधान को पढ़ा है। तो पहले से ही यह जांच कर चुके हैं। क्लासपाथ में मेरे पास एकमात्र पीओआई संस्करण 3.7 है। JasperReport JAR http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.5.0/jasperreports-5.5.0.jar/download – Tunguska

+0

से है, जहां कहीं भी, jre/lib/ext, classpath स्थान, हो सकता है जार फ़ाइल का नाम बदल दिया जाएगा। –

+2

[इस विषय पर अपाचे पीओआई अकसर किये गए सवाल] (http://poi.apache.org/faq.html#faq-N10006) कुछ [ढूंढने में मदद करने के लिए कोड] सुझाता है (http://poi.apache.org/faq। एचटीएमएल # faq-N10006) पीओआई जार आप वास्तव में उपयोग कर रहे हैं – Gagravarr

संबंधित मुद्दे