BLOB.createTeilitary () Недопустимый аргумент (ы) исключение - PullRequest
0 голосов
/ 02 сентября 2011

А вот и другой вопрос, на который, вероятно, не будет ответа, потому что это странная проблема !!!Для запуска нашего приложения мы используем Rational Software Development Platform V6 с WebSphere V5.1.Мы работаем с CVS, чтобы поделиться источниками.Приложение генерирует отчет в формате PDF и архивирует его, затем помещает в базу данных (Oracle 9i) в поле BLOB.До сих пор все отлично работает.В RAD мы используем файл ojdbc14.jar для подключения к базе данных (мы используем ее с тех пор навсегда ...).Итак, как говорится, когда мы запускаем приложение локально, следующая строка вызывает исключение:

tempBlob = BLOB.createTemporary(cnn, true, BLOB.DURATION_SESSION);

Исключением является исключение SQLException, сообщающее недопустимый аргумент (аргументы) в вызове.Глядя на это, я не вижу, какой аргумент может быть неправильным, так как доступ к базе данных централизован, а объект cnn имеет тип OracleConnection, который получает те же функции, которые мы используем во всем приложении.Итак, я попытался с помощью ByteInputStream установить параметр подготовленного оператора с помощью setByteStream.Значение моего байтового массива в порядке, оно содержит что-то вроде 2 MO.Когда я выполняю запрос, он говорит 1 обновление строки.В вызове базы данных есть поле finish_time, которое успешно обновлено, а другое поле, поле отчета, имеет значение null ....

Если я вернусь к функции createTemportary, мы работали с 3 разработчиками длядень, чтобы решить проблему, мы не нашли ничего плохого ... Итак, я решил перенести код на сервер DEV.Я фиксирую изменения, создаю совершенно новое рабочее пространство, извлекаю и запускаю сборку Ant, которая собирает, отправляет через FTP WAR и развертывает его на сервере WebSphere.Затем я пытаюсь создать отчет, и БД успешно обновляется.Функция createTeorary не вызывает никаких исключений, но локально.Проблема в том, что никто из нас не может сделать это локально!?!Как идет?Любой намек?

1 Ответ

0 голосов
/ 29 февраля 2012

Я не знаю, может ли это помочь, но я был в том же случае. Я пытался вставить streamBuffer в BLOB-объект. Я работаю с базой данных Oracle внутри ОС Ubuntu. Я исправляю проблему, меняя драйвер oracle ojdbc. Я обновляю его версией 10g. кажется, что 9-я версия не работает должным образом, когда вы пытаетесь работать с типом BLOB. Я надеюсь, что это может помочь. Удачи ...

...