簡體   English   中英

為什么在調用JasperFillManager時在java.lang.Class.isAssignableFrom(Native Method)中得到java.lang.NullPointerException?

[英]Why do I get java.lang.NullPointerException at java.lang.Class.isAssignableFrom(Native Method) when calling JasperFillManager?

當我在其參數中傳遞sql連接時,JasperFillManager拋出一個空指針異常,但是當我傳遞JRResultSetDatasource時它運行正常。

java.lang.NullPointerException
at java.lang.Class.isAssignableFrom(Native Method)
at net.sf.jasperreports.engine.fill.JRFillTextField.getFormat(JRFillTextField.java:706)
at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:394)
at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:368)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2036)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:609)
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205)
at java.lang.Thread.run(Unknown Source)

當我在fillReport中傳遞連接時,它會給出異常。

jasperPrint = JasperFillManager.fillReport(jasperReport, map, reportConnection);

我也在使用子報表,這就是為什么我沒有使用JRResultSetDatasource並使用連接。 我只是堅持這個說明,當我傳遞JRResultSetDatasource它工作正常,當我也在HasMap參數中傳遞連接對象時,它給出與上面相同的錯誤。

我剛剛在兩分鍾前將我的iReport jar文件更新到最后一個版本

您項目中的jasper-designer和jar應該是相同的版本。

項目lib文件夾中的Jar文件應該與我有相同問題的iReport版本匹配,並且已經使用正確的jar文件解決了。 你可以看看下面的鏈接: http//sourceforge.net/projects/jasperreports/files/jasperreports/

從舊的.jar替換為新的.jar沒有問題。 如果你有一個選擇。 假設您需要維護舊罐子,但它應該起作用。 請用這個。

以下代碼適用於較高版本[Ex:4.1.1]而不適用於較舊版本[Ex:3.7.6]。

 <subreport>
       <reportElement positionType="Float" x="335" y="25" width="175"
                height="20" isRemoveLineWhenBlank="true"
                backcolor="#99ccff"/>

                <dataSourceExpression>
                new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
                ($F{subReportBeanList})
                </dataSourceExpression>
                <subreportExpression class="java.lang.String">
                   <![CDATA[$P{SUBREPORT_DIR} + "subReport.jasper"]]>
                </subreportExpression>
   </subreport>

相同的代碼適用於舊版本,只需稍加修改即可。

<parameter name="subreportParameter" class="net.sf.jasperreports.engine.JasperReport"/>
    <subreport>
       <reportElement  positionType="Float" x="1" y="2" width="532" height="15" isRemoveLineWhenBlank="true" backcolor="#99CCFF"/>
                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
                ($F{subReportBeanList})]]></dataSourceExpression>
                    <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{subreportParameter}]]></subreportExpression>
                </subreport>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM