我在JasperRreports服務器中創建了一個域。我有一個存儲二進制數據的表。當我在我的域名使用它,我收到了以下錯誤:二進制列被翻譯爲空Java類型
java.lang.IllegalArgumentException: getObjectType for javaType: null
returned null
我出口的模式,發現如下:
<field id="Id" type="java.lang.Integer" />
<field id="FileData" type="null" />
正如你所看到的,空在類型字段中。我想這要改變它的java.io.InputStream的是,它映射,當我直接連接到數據源的類型,並得到了同樣的錯誤:
java.lang.IllegalArgumentException: getObjectType for javaType:
java.io.InputStream returned null at
com.jaspersoft.commons.dataset.expr.ObjectTypeMapper.getObjectType(ObjectTypeMapper.java:69)
使用該域名的任何報表無法運行,直到我刪除二進制列。當我嘗試在iReport中創建域報告時,它無法檢索域字段。當我嘗試使用adhoc報告工具時,出現上述錯誤。
我正在使用SQL Server 2005,數據的類型是'圖像'。我在我的視圖中將列投影到varbinary,以查看是否JasperReports會識別它並且我仍然有相同的錯誤。
有沒有人成功使用過二進制數據類型JasperReports服務器域?
更新:我在applicationContext-semanticLayer.xml中配置了bean「jdbcMetaConfiguration」,將二進制列映射到java.io.InputStream,我仍然得到相同的錯誤。映射工作,當我查看XML文件「null」被替換爲「java; io.InputStream」,但我仍然得到IllegalArgumentException。
通常,iReport允許將其更改爲java.io.InputStream,但當域包含FileData列時,iReport無法在域中顯示任何表。 – Allan
根據你的結果,我的理論正在崩潰。您是否使用技術支持記錄過案例? – mdahlman