RiGiD.mgn
Дата: 25.11.2009 10:23:36
День добрый, уважаемые коллеги.
Пишу один отчет для КИС. БД - Oracle 9.2g под AIX. Отчет должен быть, как для КИС, так и для внешнего веб-приложения (JAVA EE, JSP). Чтобы не заниматься разработкой и поддержкой аналогиного кода для разных систем, решили разработать код, исполняемый внутри самой СУБД, который будет выгребать данные (достаточно большой объем), нудным образом обрабатывать и отдавать в КИС или веб-приложению.
Чтобы отдать результат КИС будет использоваться табличка - другой способ с данной КИС не прокатит. С этим методом вопросов не возникает. Проблема с отдачей результатов работы в ява-приложение. Результирующие данные представляют собой древовидную структуру. Поскольку сам код, формирущий данные написан на Java, мне кажется, что лучшим ваиантом было бы сериализовать объект, хранящий итоги работы, передать строкой наружу, а в веб-приложении десериализовать обратно в дерево и отобразить должным образом. Сериализовать хочется в XML.
Возникает проблема - встроенная в оракл JVM не имеет стандартных классов XMLEncoder/XMLDecoder. Пробовал постаит стороннюю библиотеку (xstream) - тоже неудача. Выгружать данные из дерева в таблицу и потом сснова собирать в дерево очень не хочется. Может быть кто из гуру знает, каким образом передать сложный объект из внутреней явы наружу?
Заранее спасибо за ответы.
Timm
Дата: 25.11.2009 11:27:21
Почему бы не отдать данные как есть (в виде data set/таблички) и обработать их так, как это нужно на стороне контейнера? зачем сериализовать данные в БД чтобы потом десериализовать/трансформировать вне БД? Лишняя работа, по-моему.
RiGiD.mgn
Дата: 25.11.2009 11:50:02
Хочу напомнить, что пишу хранимый код не на PL/SQL, а на Java. ПО завершению работы кода имею явовский объект, достаточно сложной древовидной структуры. По другую сторону, в веб-контейнере надо получить их именно в этом же виде. Конечно, можно выгрузить дерево в таблицу и потом заниматься сборкой дерева обратно. Но должно быть решение более элегантное и правильное.