Birt报告引发PSQLException

时间:2014-11-30 10:26:33

标签: mysql postgresql

PSQLException

嗨!我们使用Postgres作为现有应用程序的新数据库。在我们从mysql数据库迁移到postgres之后,最近出现了这个问题。迁移到postgres后,eclipse BIRT报告开始在服务器日志中打印异常。 [请参阅附图]

这背后的主要原因是报告将图像(通过数据库记录提取)打印为Blob。只要存储在数据库表中的图像字段在相应的'bytea'datataype列中设置为'null'值,就不会打印此行异常。

但是,对于BIRT报告处理的每个非空值(存储在数据库列中的'bytea'类型的图像),抛出此异常。

检查报告输出后,可以正常看到图像。如果图像应该被正确呈现,那么为什么BIRT报告会在日志中抛出此异常?

org.postgresql.util.PSQLException: Bad value for type long : \x89504e470d0a1a0a0000000d49484452000001c2000000e10802000000d435223e0000000373424954050605330b8d80000018a749444154789cecdc31481b511c80f1f74a07078727385ca085465a304e55dac1b109160c748938e8d10e952ed50e3674a9d2a54817b55088858274d2821085162354720e2d3a148c935d8a2758d041f00d1ddcd24190184b31f7d73bc5efb7ddc1e5bd251f77ef5ea2140040402ba5cae572d4d300800b496b7d25ea3900c0c546460140848c02800819050011320a002264140044c82800889051001021a3002042460140848c02800819050011320a002264140044c82800889051001021a3002042460140848c02800819050011320a002264140044c82800889051001021a3002042460140848c02800819050011320a002264140044c82800889051001021a3002042460140848c02800819050011320a002264140044c82800885c8d7a02978eb5b6b050c8cfe5634eacef715febedd6a8670440442ba5cae572d4d3b8904a6ba5dc446efde77a4d57ad7c5fa93c8cdf8ca73bd3d9e7d9f88df8a9ce0e4018b4d66434207fd36f8a379de207f63de91b7a39444c818b858c06977b9f1b783a70ea1f6b1a4da239118bc512cd8983332d8916c7711a1a1a78fc07ce21321a5cea7eca5bf4c21c31d991cccfe48d31610e0ae0ffb4d6bca90f68b5b41af85ae79ad3ffac3ffd205dd355dea217bf152f2c14028f0be02c70371ac4f185d1a2573ce1b5958fe7d6dad1f1d1b1b763fb7ff64f3e7aa63b33f96192db52e03ce0a13ea0d9b9d9ae4cd7e161b22359fc7ad28c1e67ad9dfc38393a3ebaf37be784979846937b97ebede90d3c288053a1b566df6810cb2bcb9587c2973fc698ec60363b98554a95d64a7b7b7bd6dac34583d25ac95bf2aa6e57edae757b5dc77192f79292a101c871375a337fd36fbbdb6677ede199a9e9a933bd31b4d6ba8fdcc297ea5551d368567facb2470a8810af9882c84de42a1baa946a6f6f3fd3118d31f39fe7e70bf375f57595e7edae4d75a4bca550370c00a842466b73b08e597926fb22a41f20a53bd3db5bdbad778e2c20f8bffc543235f26624840900f8271eea6b53b5ebbeaebe6e7b6b3bcc97e6d6dad8f5d8f137fbec2a0522c1437dcdc6c6c72a0fdd1e37e472196396bf2d573ddd2ba5bc452fd9c1eb262002dc8dd660fad3b4dbeb569ed9f0372279c3e36ffaee43b7ea5f4e229ccf6556b536cdde89cb867da3b5a9fa0168a63b939fc947389fe157c323af8fac8a16bd225fe3901d7c890ef16dba6cb4d67f010000ffffecddb16bdc6618c771513adce04107ed6e99149a2d321e7ad97a70439d2931141c4fedb981922d1c81c6478692d0a149b76b8670747320c1ee761e822f43e1dc2158d99cc120ff0186d37f900e81e4d57392a55c4f7edff3f3fd6c1267f40ce267bd7a9ff795e779de3b9470181d7a69fbc37ddb45bd6bb69aae95a48db82b6c9783f3e679de671ecae9fdd9330fc395b0f96d33efc700f420464b894fe2fed3be79a673a763ab18004e21464bd97eb66d1ed6166a37d76fda2a06805388d16249923cfae39179a67baf6bab1800ae21468b0df606c969629eb9fdf36d5bc500700d315aac7b3ff5ecd9fea9edfbbead6200b886182db0fd6c3b3e8ecd335bf7b66c1503c041c46881fe5fa909fa66ab192c06b68a01e02062f42cc357c3e1cba17966eb171e4501a410a367e93d49b5dc375b4d5aee0108c4e859765fec9a87ed1fdab62a01e02c6234577c128b33b4dc0398448ce68ae3548c8a4d4000e03d6234579224c53f02a01e319aebe8ed9179c8e412804cc468aef1786cbb0400738018cd15bd89ccc3c6370d5b95007019319a2d4912d1781f047a172f0df6064b5f2dd5bfac6fdeda9c6c6000942346b30d5fa533f452a0760d687c125f5bbd161fc7c969d27fda5f0a963a773bccbf011f10a3d9460723f350f3fc9268fcf23ceff1ef8fd7be5fb3520ce0206234dbeedfa9f54babdfaddaaac44dc397c387bf3db45d05e0046234437c128bcdf1343f8de6bd14165f0400d422463388616cb8126adea739efa5b0f82200a0d6e7b60b9803f57abdcccfa23791d96aba1c2e6b0e5f400f6274663a773b668fd4fe705ff3ab00400f06f5190efe3d300fc32ba1ad4a1c47db13e011a365941cd42b24ba6b019d88514c4f74d7023a11a333a370f1284fa380478c6612e970f9ebcb857f22f631a92dd4342c1e8d5e47bc1e0588d16265fa968e8e529b935e6d5cadac1cb7f0400ad0f09461721579a1c3e8d03cd4d3ea343a18ddb87ea3d24b74ef77cdc307bf3ea8f472c0a72246334cb112540ceacbbc07b818cee16994075e388e1895442006974abde214f34b61a8a5d5347a1d15ffe8ff19fde36e3f80d87db5b650b355092ce2dda82446f46526dc45f27af9ebd071c188bb45cf3b71988851497cc9aecc12269639a9c5823778c4e8a4299e46a196b85b58f0a613312a89b75d7a268b300571b7f0dd439d885149e162244c8dbb051e312a4caec9293959d46ca59aa2e8d1d160eabb05170c319a22bbe85b5abae8310531a2f7bf60976ea588d114314dcff6f538437825341b4593d38451884ec4688a18a62d87cbb62a710a5de579c4276345ff1394204653a6d8db49838df50ddb25386aedfa9a79b8b3bb63ab1258448ca688364006f5efe9d969e553351aa90e27760ed489184de1f3f499c4d0151f048b81d87561b037b0550c6c21463f1223fa929b9268e0fb7eb8c232c76c629f40669914224673d14a6d6affd8b65d82a3c47624c4a842c4284a615c9f473c8dc6c7b1e827c585478cce37b16ca6ba869b6031605c9f472cd398e2eb09986bc4e8476242492c97769378f3301e8fabbb16e37a2013313a1b8e6c9856e97519d7e711ff7159b5a10d313a1ba253eadcb6efadf4f153605c5f12edc6da10a33360b1e35a7cbfa4eafd2e19d7039388d119d0b32fd4c6fac6e4fa7a26a605163269438cce3791e055bf95f37d7fe7b95c36be796bb3d28bce9dde939eed1270aefe030000ffffec9d4f68db7816c77fdd930e3e28d0051d728886eca1c32cd4a58775e9250a1968600e71e8425de630eb7660d6edc2e2b4b0893787e2a4d0d1e4642730db746006a7b0c52e2c347318e41e0692810d566eb3b0c52af4901c02d2610f739b3d78272b3dd9b2fefe7efa59ef432f7225eb45fee9abf77eeffd9e0821e467e417f257f3c486d6d5fc1c55dfacdb8faa3ea8266de739c409939312421adb0d3aa74e27e5bb65fbd5102f8aa669b2360aa10421e457ee5b22cb4c4d4da5e44bf8a2b65e33de1aacad60c6daea9a7dd33ab39a3b4d56c620f441198d819edeb36fca33322b4b58619d59773ebdc3da0a66c833327048d52dd5b22c56f6209441198d0170c34892c4e4bc6ce97ed7656d024bd427aa9013ce37ad330b4cf520130cca680c1886239ea516d4775f3b944b9ecd9c179c1e4451acadd6ec9fec7eb5cbca18843228a33160bc71c868fe727ed49ef1b2ffedbe7d539953e89c17194ae5b30a7048f79eef31b407a106ca68541846d6c01b5dbcb1c8ca128410228ae2ed5bb7ed9fb45fb6591983d00465342a20bfa42c507209f5631d78c1e88d32a774ab64dfecbce864b980213ba08c46e54afe8a7d935aa6e5e0f0c0bea92c28a228d23935320a654e0133d460e20599485046a3c24abc3a2f3bf6cde25291891908a0fc0747e5d3ee334c344d3e28a331604f2c1042e8c471c0edbd56b846e1a4dee8c73a6b13d803e27afd48c7b87ee241198d012061a0fe2909802b2acfcad4ca033c0025e8d9449e91c192e2e636ae689a705046b9044e8ca623b9a41fe91b8f37585bc11e10d783671e3279a08c72496a4b9dd42d15635850f664bc3170ba63b24119e512fdc8715ba6c41b25845867d6f2cde554ad52a58f288ac59b8e8c1fc6f5930dca287f00774fc8096c4b9daa0faaf64dfd485716948c2be9f2d2b27d13ebf0271b9451fe00292ce639fada6a0d144bea47faf2ef9747ed9f10ddd75dfb3fca67072cde58040b43718674824119e58fc31f0eed9bccfbf289a2d87ed106555fddef686bd9bc326fff47f3d46edc0b43b10e7f824119e50f50d12dcbec1b3be52fe70fbe3f004a9af1ac3dc8fb615c3fc1a08c724673a70996d2a7244d9fbf9cdffdd2a1eff41dd254515c2a625c9f11504679c2b2acdabaa3a9a5b2a0a4a1f07e40e956094c9266dc21c5b83e23a08cf24473a7699d3932e0ea1395953143a93f72b47ccf784b7c8ceb3302ca28375896a56e3944b37cb79c1e57740058519e7130aecf0828a3dcb0f270c5ee8a0a3901bc9012492118d7670194513e30de1abb7f7324706aab35e6a54e7ec8f8ab8631aecf0228a37cb0b1e9c8d50839a1f259859531de80fe46197f853dc6f5590065940386baa2a9ed750fb25e197f853dc1b83e03a08c720047ae2821449953c02afb8c1790625c3ff1a08ca61dfd58e7c8151de05e659fe502528ceb271e94512f4e4f4f599b005bcaa7dc151d208aa2bb8034cb0e29c6f5930dcaa803d0b8335cfcb5f27025ae36712b0f57406bd1dd2f7753ee8a0ec0154d7662195748aaf919f905adabd9af8c7851f47314e8d14b08c95fcd9ba619af3183af8df89d1e98a6d937fa7ef6f4397e5a7b2db0a7cfef0f479a47b5699ac0bc76a71de27bb4aed6d86ec46e1e1285340e38e68036453dbd37f610b7de0d24d8cfb1a3304d1378733e8d0987d6d5e459d9a74cfb172cf027541f5463b23792554c00cfdaf2dd72a0c3b5aea62c28149e464850523ae0d802867b7db3eee728b7e73550d2d03e29487613421272434cd3b49fcbcfdfeb5fb0c065f1e9dd8723e5321afa52f48dfeb9808693602451523ae0d8d2d86ed887acb2a0f83cb0a7f780274bc286e16ef7d6bf1981304d1354cb131f3eaf7fc1324d135c93d65e2bd6bf208c554c0817d7d737ebe2c52153e1e890a687940e38b6f48d3e18b2fe3dcaa14a2acfcaaff65ff937c01dce0b392189db66a886121f921d48b040a54142cf83a0563121505caf75b5a1bfce8044a747904010422e0c06dca85f2b9bbcf79bf7ecad91b5aee6ffd59bc65be3fddfbeffd37f7e029f5ffae092cf0cfbe9e92968ccdcd86ec45ee4645996b2a08032004248e17aa1f54dcb7bb5fe850b17ec9bdee3473fd6afe4afd83fe91bfd24ba0104b28a097bcff76e97fe5ff9245e148d7f1b60545896b5ffed7e6dbd06c6c039d2b4547f542f7f521efabf087dfe37f0188b79fa000e94cfe9d1737a7a2fc61f2921f7cdede9083941dd52fd1c0b0e1cbb3f9d445350ab98e031c5d137fa95fb95a121fc00695a7afaec2943e391a1a47ac031044c8f8698d11f9a710a4142e17c7db3ee3e97ff320070e0d8fdc1f54ca86c2ba8554c004fe841615c6bafe5ae9903541f54a397d0214990ea01c71090e1099d262a5c2f78df1b63492821e32ea50a742270ecd8fdddd3cd493c1b825ac58410918a342d695d8db5e1c848523de018e24eaa86fe2aadab49d352d03b674042c1afdb530e2ad6212e0e984348a2782bae9f2c693c124780c2f542b82a7d842604534ca30059a69ede8bf2ba8e10cbc9fd27b58232ffe1bcfd1549c59bc5f6df83ad4d0c91cc69ee34effdf1def966fe6abef7cf386790c3594599eeebeec6e38db1efa712724271a9587f54e7a22d378229a6918082e7e4aa1d29e30e2a43048ce01bfc1c4221ae0f611535ec6b903c90a625754bc53950be20d89a6414c0199c98feedcd6dc72b3de4593939b7d771a2191904b319e97264bc35e63f9c9f57e63d9c50212754ee577a7aefe4dd49f5cf552e5acf2010d66a9e46da1d479c9b5cd1384ddc8ba3c279d9e1c60fc8d7cbb3728853c76e5572b43bede2cda23b9b3714f440f985a0373a0a59768cfe784b41996059f0651e424e008dd913059ccb78634c64eb3cfd58bff3e99da95f4f2d17973b2f3a43abe8a56909c86beb793c1572083358ab794a015789777f21c65e27a1c78f7b7e30c61952b6a3ba6ff41bdb0d3fbee7608d0328dd4db40522922828a35e807b9ef7d21370874799a6082d58ee44538cb325ac647410bc8f554f42c8a50f2e9d27f4dc9722b92e8848a2a08c7a41ada70605dc95b051dc40a0c881ee7ff702aad0660028cb68dfe8d737eb7edc4f695aaadcafb82f38784e63b7114e4119f5c25da61ea85153aa88655dd639e0fe0f5432e5ee5f15d7121d6a326a9aa69fea252127943e2e790431349bb122c94130c5e441e95609d4e8dcfbd3bd513ba79cc31f0eed9ba0e5124d445104e9bbb8de5b450d6541f12ea12f5c2f3c7df6f4e4dd49ebeb56716964bcbf786311bc31b4b9d31cb53392665046bd509fa8f64de38db1f77c8f953151009506f97cf81559d10195aa3ffeeb4756968460e3f186bbbbe000695a5afbeb5adfe81f7c7f50fea43cb6fc531445f0c6d0da7a8dbb870a425046bd51e61410bed5d66bac8c8982ae3beefc6b856bac2c7163183c2d6d50b754f7878b1f2db63bed937727415770aeadaed937d121e51494d131acfdc531d07974482dcb02d58b51fa0344a7f03b47e32bbe568859670e6f71b076f3d53f5e7904ef1ec83332c864aa5b2a3aa4dc81323a86a10e295f031d46f4be3b0c0dc5b22c303338353515e81bc0fe7179a3ee897f0a445fbbe9764887768345d20ccae878dc0e295f9117987c04199ea080b5f0424e08eadb82fd47bd2d2323c833325819f1c5e75ff0e5a12328a3e351e614ae232f606ac4347dfba5a3db004892f804d43ce9c7c3933619a1b65a032f1701cb769194f35f000000ffffeddc314c1b5700c6f1e72a8307868be481210317d10129432ff26244070e51296cb145a5c05643a4c86a87423204d4a142191a481743a406da0967c2192a9c21f231b44a864677912a6569e4cbd08101e96ee890a1121ddc36e7770ed8f7ced8c6ff9fbcdc01cfcfc7f9bbf7debd7b4208718cd3d4dc9a68b4766faddb956a95396d066bbe57de53294d3a0ed14a93aa54b5aa2a553a4bd2c78fabd8b57b6b52c97d744c069c10e2238116e8237a7e311fdcb3fe60ddf7fd6ed5a72daeeb0637755d8f5c54f94939b8991c4a66af672394637c6204370f0f0f2357e97c28dc2ae8a30dff97859b0bddaa0cda458cb66ae5ee4a70d33ff2c32d88dee4be69885129c2da52795a096ecedf988f564e2e9bdb2bef55adaae779c7c7c77337e62257e97cd0346deddb86d3c97de36e3edcec567dd0968410e238d45541530b3717761eed04f7ec57f667aecd74ab3eadb00eac29732ab8a7e6d6f491880dd2cb1f5f0e86f25e792f5a6bb47f8d7f3a1edc7cfecbf3180b9ffa6cca7a66fdbfa9a534f70f57d3b418df22c879e508b5cb2a841089444208c6465b56736bc9a164f0086a29adde9eea599ee749758e3ce8663bb67402f5f867ef3b55ab2a1de1a5db4b1d7a2fdbb1b594a6a534dbb13bf4160342d0a96f8b3ea2af7fb71edce31ff9d2dd925ea369da7866fcf4df6bc16e6937b8999dcd76aea13498cc49531a82dfb8bfe1be753ff4fb91f9be6f4e9bfe915f3f81ebcd5244468cb6a770ab909d6de8c63a2f9d01b91b601d58c1cddcf55cb76a728eaddc5d917a0fcb7796637f97cd879bfed1bf374849d27874bb51dc67c2dd64d1dbf39fa4f6b2396dd6dc5abb8584a77c452804ad901aa4a203939fb4544337c2481b8ccf44468c46141ec31242ec9676bb5dafe6c2c30e5a4a6bf79b297db78db4d1a1da223c041fefd10e9fbd5c1155083af5d19893a634502884989f9befcd9e517804d33ff2a7cca9d6e7d3f8be2f4d51c87f21b79810177d445fbdbb1adce3bc744a8f4b71952fcdd235a7cdc83337f05eb7d3bc5f2ddd5e928ea496d27af0c25e736b46baf9a496fc62be95de9c3443363994a40fd8519ee7497d8818e7844827833eaac752ecc02246558587b17a769869fbc7ede14bc3e124d547f5cc44467a490314d20336bd3c107c6e84bbdeb11c76cff3c29752f562071931aacaf3bc7043cf481bbdf940b4e77999894c38499b1abb32568fd4b12b63d28f7ab0c57d2e852fd2eae3ef523aeba37a6f5ef5fb08311a03cff3a4c69a144371dd7aaab9b5aa552d6e150b5f16321399c88d8886b1880b2d86ea7bd9d96c2c1f07a70adf6b524fd2e25631581a4d5175c4683c6cc70e9fee41faa8be5fd98f567271ab989dcd4a335484105a4a8b5ce1ddd2eec9153e215e151788425b9aaedba0927d520b97f11975c4686cf62bfba7c690396de617f34d9baed1a874c76cc7fed07da713703be2ec35fd37454e52e97adc9ba34ffd45b034498cac036bf59bd517bfbee8d41b5c10e2ef861d55ab6a4e2a3d8aeabe75a565f47cdf2f7c5538fcb3c9ca75c397862b3f5758c9e2ec85d7c41142d4c7ac67aecd480f289fa0fca49ccb363c7ba6b24e0dea12f5b54988d118753c4c038a5bc5c2ad42274a765e39b66307bf60baaef37deba2a6495a975fcc6fffb07d6a09ce2ba7fe1c7dbb7f889311a39de2fbbeedd8beefaf3f588f31523313997a9c5d35aeeaba4ec370a06c7cbfb1fc751ccfd7ffd7ad19c0750e3b81183d0b8aedd3cc44c69c34ebaf782b86be537a5c9a9f8bb854b6c4481bf66ff2ca878880183d3bd681b5f3d3ce45eda23969d2044064b124a99136ac6716eb1cc6821805fa4fe56965f9ceb2e77b4def049e2a39947cfdfb6b46bae3428c027dacf2b492fb3cf7eeaf77adff899136761eed30aa1e236214009424120916ca030025c42800282146014009310a004a88510050428c0280126214009410a300a08418050025c42800282146014009310a004a88510050428c0280126214009410a300a08418050025c42800282146014009310a004a88510050428c0280126214009410a300a08418050025c42800282146014009310a004a885100000074cf3f7177c231114bcb0a0000000049454e44ae426082
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2992)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2164)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBlob(AbstractJdbc2ResultSet.java:379)
at org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBlob(ResultSet.java:604)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.getBlob(OdaResultSet.java:733)
at org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBlob(ResultSet.java:366)
at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:191)
at org.eclipse.birt.data.engine.executor.dscache.DataSetToCache.fetchFromDataSet(DataSetToCache.java:241)
at org.eclipse.birt.data.engine.executor.dscache.DataSetToCache.fetch(DataSetToCache.java:171)
at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:218)
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.fetch(RowResultSet.java:145)
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:118)
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:96)
at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:318)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:246)
at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:74)
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:132)
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doSinglePass(PassManager.java:170)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareDataSetResultSet(PassManager.java:94)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateDataSetResultSet(PassManager.java:80)
at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.cacheDataSet(ResultSetPopulator.java:223)
at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:146)
at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:1068)
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:503)
at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1208)
at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178)
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:83)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:275)
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1947)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:258)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:269)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:86)
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1325)
at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)
at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:118)
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:103)
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
SQLException: SQLState(22003)

任何人都可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

对于发布问题解决方案的延迟感到抱歉。

我们终于找到了一个解决方案。 数据作为“字节”存储在数据库中。型

也许这是同样的情况:

Postgresql, JDBC, and streaming BLOBs

所以答案就像:

原始的BIRT报告查询就像

SELECT t.title, t.clientServiceOrderId, t.employeeId, t.tripId, t.clientName, t.address, t.city, t.state, t.status, t.signatureImg, t.ratings ...

我们将其更改为

SELECT t.title, t.clientServiceOrderId, t.employeeId, t.tripId, t.clientName, t.address, t.city, t.state, t.status, encode(encode(t.signatureImg, 'escape')::bytea, 'base64') signatureImg, t.ratings, ...

这使得列"signatureImg"在结果中显示为"String"数据类型。

然后对于图像组件,使用onCreate方法而不是使用先前的"expression value"

<image id="1746"> <property name="height">83px</property> <property name="width">113px</property> <method name="onCreate"><![CDATA[importPackage(Packages.javax.imageio);importPackage(Packages.java.io);importPackage(Packages.sun.misc);decoder = new BASE64Decoder();decodedBytes = decoder.decodeBuffer(this.getRowData().getColumnValue("signatureimg") == null ? "" : this.getRowData().getColumnValue("signatureimg").toString());this.data = decodedBytes;]]></method> <property name="source">expr</property> </image>