2014-02-14 45 views
1

例外:JasperReports的:填寫的一份報告拋出一個異常「TargetInvocationException」

HTTP Status 500 - 

type Exception report 

message 

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 

java.lang.reflect.InvocationTargetException 
    org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) 
    org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) 
    org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) 
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) 
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) 
    com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) 
    com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) 
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) 
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) 
    com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source) 
    org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) 
    org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) 
    org.apache.axis.Message.getSOAPEnvelope(Message.java:435) 
    org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) 

代碼:

PreparedStatement ps = conn.prepareCall("{ call StoreProcedureDemo(?) }"); 
       ps.setString(1,condition); 

      ResultSet rs = ps.executeQuery(); 

      // System.out.println("Inside ordersheetReport"); 
       HashMap jasperParameter = new HashMap(); 
       JasperReport jasperReport; 
       JasperPrint jasperPrint = null; 

       try 
       { 
        File file = new File(Paths.FTPPath+"PDF/"+name+".pdf"); 
        file.delete(); 

       }catch (Exception e) { 
       // TODO: handle exception 
      } 
       System.out.println("1"); 
      JRResultSetDataSource rsss = new JRResultSetDataSource(rs); 
      System.out.println("2"); 
      jasperReport = JasperCompileManager.compileReport(Paths.FTPPath+"JRXML/OrderSheet.jrxml"); 
      System.out.println(" jasperReport "+Paths.FTPPath+"JRXML/OrderSheet.jrxml"); 
      //JasperFillManager.fillReportToFile("D:/reports/test.jasper", jasperParameter, rsss); 
      try{ 
       System.out.println("try 3.1."); 
       jasperPrint = JasperFillManager.fillReport(jasperReport,jasperParameter, rsss); 
       System.out.println("try 3.2."); 
      }catch (JRException e) { 
       System.out.println("catch 3.."); 
       e.printStackTrace(); 
      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 
      //JasperPrintManager.printReport(jasperPrint,true); 

      JasperExportManager.exportReportToPdfFile(jasperPrint, Paths.FTPPath+"PDF/"+name+".pdf"); 

     }catch(JRException e) 
     { 
      // System.out.println("precriptionReport : "+e); 
      e.printStackTrace(); 
     } 

我能夠獲得日誌,直到的System.out.println(」嘗試3.1。「);.

+0

重複的[JasperReports:填充報告引發異常「TargetInvocationException」](http://stackoverflow.com/q/21776794/876298) –

回答

2

此問題的Tomcat的jar和應用程序JAR。(可能與jar文件衝突).. 我已經改變了我的Tomcat服務器形式6至8版本和正常工作對我..

感謝所有你的時間..

2

InovcationTargetException意味着您調用的方法拋出異常。爲了弄清楚你的方法本身有什麼問題,你可以嘗試在一個Throwable上使用getCause()。 而不是直接編譯jrxml文件。 compileReport(Paths.FTPPath+"JRXML/OrderSheet.jrxml")

請首先嚐試使用碧玉裝載機:

JasperDesign design = JRXmlLoader.load(Paths.FTPPath+"JRXML/OrderSheet.jrxml"); 
JasperReport report = JasperCompileManager.compileReport(design); 

否則,該問題可能從連接獲得,(我可以從你的代碼中看到準備好的語句,但不連接的詳細信息)。

相關問題