2008-09-19 15 views
4

Я пытался добавить схему XML в существующий проект EJB. JAXB используется для привязки XML-схемы к классу Java. Поскольку мы собираемся использовать поисковую систему для обхода через DTO, когда EJB находится в сеансе.Интеграция EJB - XML ​​с использованием интерфейса JAXB

Я не мог найти прямого подхода относительно сопоставления файла класса сущности с XML-схемой.

Единственным способом, которым мы могли бы достичь до сих пор, является создание веб-служб, создание WSDL, который генерирует xml-схему (XSD), а затем анализ файла XSD через JAXB (команда xjc) для создания файлов классов Java. Теперь, используя файл mapping-binding.xml, мы можем сопоставить как XML, так и файл класса Java.

Но теперь проблема заключается в том, как сопоставить это с классом сущности.

Это то, что мы хотим достичь:

  • XML объект данных с помощью XML-схемы, (это уже присутствует в спецификации JAXB).
  • Entity Bean затем расширяет или имеет интерфейс к этому объекту JAXB.
  • функция
  • Всего Постоянства управляется Entity Bean ...
  • бина сущности будет содержать в XML-сортировочный и немаршалинг функций, доступных в JAXB ..
  • Значение объект может быть получен в двоичной или XML-форме из Объект Бина Объекта.
  • JSP может легко извлечь XML-схему и XML-данные из объекта Value и выполнить на нем операции, такие как XSL-преобразования.

Мой аргумент заключается в том, что Entity Beans не имеют стандартного способа взаимодействия с объектами JAXB.

Кастор может быть решением, но с другой стороны, мы должны внедрить веб-службы или использовать касторы JDO.

Я нашел XStream очень полезным, так как он использует класс конвертера, в котором вы можете вызвать объекты класса объектных объектов и сгенерировать XML-файл. Но я не предпочел использовать другой класс, но включил функции в существующий класс bean.

Помогите мне в этом отношении?


Я расскажу вам, чего я на самом деле пытаюсь достичь. Я создаю поисковую систему, которая будет вызвана во время сессии EJB и будет использовать искатель через DTO и получить моментальный снимок в формате XML. Поиск будет по разным критериям.

Lucene является одним из инструментов поисковой системы, но затем он использует свои собственные свойства и файлы (будут действовать как автономно)

У меня уже есть DTO, который используются веб-сервисы для обмена данными между PHP & Java приложений (EJB -слой). Я хотел повторно использовать эти DTO в jaxb как искатель, чтобы получить результат из таблиц в XML, который я не могу сделать, поскольку JAXB использует свои собственные сгенерированные классы через xml-схему. Как вы сказали, я еще не нашел способ проинструктировать JAXB к классам bean.

+0

педантизмом: * Сопряжение Пожалуйста корректуру. – GEOCHET 2008-09-19 13:56:58

ответ

2

Плотно связать вашу модель данных (сущности) с вашим XML-интерфейсом, возможно, не лучшая идея в мире; он не позволяет вам менять один, не меняя другого.

Я не уверен на 100%, я понимаю, что вы пытаетесь сделать, но я думаю, что есть способ научить JAXB расширять классы, а не создавать новые. Вы можете создать свой Entity Beans как обычно, и ваши JAXB-сгенерированные beans-компоненты расширяют их с дополнительной информацией.

Я могу сказать, что получение Entity Beans экземпляры откуда-то другого чем ваше сохранение слой (например, десериализации их из XML) собираюсь быть огромной проблемы для вас.

Также обратите внимание, что использование XML для обмена данными между Java-приложениями (например, между JSP/Servlet и EJB-слоем) является плохой идеей; маршалинг и добавленная многословия XML покупают вас очень мало; сериализация объектов через RMI (что и будет делать EJB для вас) было бы намного проще реализовать, протестировать и поддерживать.

+0

Спасибо за помощь и предложение dave .. Пожалуйста, ознакомьтесь с ... Как ив добавил больше информации – 2008-09-19 20:26:21