2012-06-14 28 views
1

我在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。

回答

0

編輯:不,不能這樣做。抱歉。

原圖[過於樂觀]答案
特設編輯器不能處理圖像(或其它的二進制數據類型)。如果它更優雅地忽略它們,這將是很好的...但是,你不能在那裏使用它們並不奇怪。

但應該可以將該字段定義爲某種二進制文件(圖像或字節數組或只是一個對象或類似的東西),然後在iReport中使用它。

+0

通常,iReport允許將其更改爲java.io.InputStream,但當域包含FileData列時,iReport無法在域中顯示任何表。 – Allan

+0

根據你的結果,我的理論正在崩潰。您是否使用技術支持記錄過案例? – mdahlman