Domanda

Ho un paio di JasperReports effettuate e in esecuzione molto fine su una macchina Windows. Il problema è iniziato quando i rapporti sono stati impostati per l'esecuzione su un mainframe con il sistema operativo zOS.

Il problema è: quando si crea il report Jasper sembra di leggere le tabelle dei metadati dal database e basati su di esso si aspettano i dati a venire
. Esempio: se ho una colonna di tipo varchar (20), quindi Jasper sarà in attesa per 20 caratteri soltanto anche se il campo relazione è definita come stringa.

Questo non accade in ambiente Windows, ma sul mainframe la codifica dei caratteri è EBCDIC, e così la colonna potrebbe avere 19 caratteri sul mainframe, ma quando la sua codificato restituito al report come 23 o 24 caratteri.

Nota: questo problema si verifica solo in caratteri non inglesi.

Aggiorna
Un ConversionBufferFull viene generata quando Jasper sta creando il rapporto, non ho la piena traccia visto che non posso accedere al registro mainframe. Il problema si verifica con una sola colonna chiamata COUNTRY_DESC quando il valore è di circa 17-20 caratteri, l'eccezione si verifica.

Come già detto i set di caratteri sul mainframe è EBCDIC, ma quando la sua lettura attraverso la sua JDBC convertito in Unicode. per esempio in EBCDIC parola sarà 17 caratteri, ma quando convertito diventare 22. Per qualche motivo sconosciuto Diaspro aspetta 20 solamente in questo campo.

È stato utile?

Soluzione

JasperReports sé non gestisce la conversione dei dati, né la lunghezza del campo. Questo appare come un problema con il driver JDBC.

Sherman Jaspersoft

Altri suggerimenti

sun.io.ConversionBufferFullException è gettato da convertitori di codifica dei caratteri sun.io e bolla di maggio attraverso classi java.io nelle vecchie versioni di Java. Questa API è stato deprecato da qualche tempo e non è più in uso dal Java 6 -. java.nio.charset è usato al posto

Si tratta di una conversione bug personaggio in entrambi JasperReports, il driver JDBC o cose utilizzate per quei due. Non credo che abbia niente a che fare con la lettura di meta-dati da JDBC ResultSet di per sé, anche se potrebbe essere le stringhe nel meta-dati che viene convertito in modo non corretto.

E 'difficile dare la colpa o pensare a un work-in giro senza l'analisi dello stack.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top