Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Развертывание SOA-приложений в Apache Geronimo с использованием XMLBeans

Практический пример, помогающий упростить разработку SOA-приложений и сберечь время

Кунал Миттал, директор Domestic TV IT, Sony Pictures Entertainment
Кунал Миттал (Kunal Mittal) является консультантом, специализирующимся в Java-технологии, а также технологиях J2EE и Web-служб. Он соавтор нескольких книг по данным темам. Работает директором группы Domestic TV IT в Sony Pictures Entertainment, где отвечает за техническую архитектуру и управление приложениями. Более подробная информация приведена на его Web-сайте.

Описание:  Интересуетесь XMLBeans? Эта современная, простая в использовании технология связывания XML-Java позволяет обращаться к XML-файлу как к любому Java™-объекту или компоненту JavaBean. Узнайте больше о технологии XMLBeans, включая способы использования ее с Apache Geronimo, а также о том, как технология XMLBeans упрощает разработку SOA-приложений (service-oriented architecture).

Дата:  09.05.2006
Уровень сложности:  средний
Активность:  1052 просмотров
Комментарии:  


Технология XMLBeans позволяет работать с XML-структурой как с компонентами JavaBean. Использование такого инструментального средства как XMLBeans упрощает разработку SOA-приложений, уменьшая время разработки и тестирования служб, и увеличивая, таким образом, скорость предоставления служб.

В данной статье в качестве контейнера развертывания написанных вами компонентов XMLBeans используется Apache Geronimo (хотя вы можете использовать любой сервер). Здесь предполагается, что вы работали ранее с XML и знакомы с концепциями XML-схем, XQuery, XPath и т.п. Но не надо беспокоиться, если вы не являетесь экспертом, поскольку XMLBean скрывает сложность этих технологий.

Что такое XMLBeans?

XMLBeans были представлены компанией BEA как часть ее продукта WebLogic Workshop. В сентябре 2003 года BEA подарила Page Flow, XMLBeans и другие технологии сообществу разработчиков программ с открытым исходным кодом. Впоследствии эти два проекта получили название Apache Beehive и Apache XMLBeans.

Вы можете представлять XMLBeans как объектно-реляционное (object-relational - OR) средство отображения, но для XML-файлов, а не для реляционных баз данных. XMLBeans позволяет обращаться к XML-файлу так, как к любому Java-объекту или компоненту JavaBean. Другими словами, это инструмент связывания XML-Java.

Castor и Java Architecture for XML Binding (JAXB) - это еще две широко известные технологии, выполняющие аналогичное связывание XML-Java. Castor - это интересная технология: кроме связывания данных XML-Java он обеспечивает связывание Java-SQL как обычное OR-средство отображения. Castor поддерживает также возможность самодиагностики во время исполнения; он пытается найти соответствие элементов и атрибутов XML классам и полям класса Java. JAXB - это технология фирмы Sun, предоставляющая некоторые базовые возможности.

Прежде при работе с OR-программой вы, вероятнее всего, не думали, что она могла бы представлять ваши объекты в XML. Сегодня, с распространением SOA, это стало важным критерием для таких программ. Хотя технология XMLBeans является новейшей, она, вероятнее всего, наиболее совершенна среди технологий связывания XML-Java. Практика показывает, что ее легче всего использовать и что она предлагает лучший набор возможностей и лучшую производительность. Подробное сравнение технологий связывания XML-Java выходит за рамки данной статьи.

На рисунке 1 изображена работа XMLBean. За кулисами процесса XML-файл всегда сохраняется в синхронизации с представлением компонента. Если у вас есть файл, соответствующий какой-либо XML-схеме, вы можете работать с ним, используя методы getters и setters так же, как вы делали бы это в JavaBean. XML-документы представляются как настоящие объекты данных (означая, что они могут использоваться без ограничений), доступ к которым осуществляется в стиле JavaBean.


Рисунок 1. Связывание XML-Java

Вот пример. Предположим, что у вас есть XML-схема и соответствующий XML-файл, представляющий собой книгу. Этот файл содержит элемент Author, имеющий отношение с книгой один-ко-многим. Книга может иметь несколько авторов, как показано в листинге 1.


Листинг 1. XML-файл для объекта book
        <mybook>
            <title>Pro Apache Beehive</title>
            <authors>
                <author>Kunal Mittal</author>
                <author>Srinivas Kanchanvally</author>
            </authors>
            <isbn>1590595157</isbn>
         </mybook>
      

При работе с этим файлом с использованием XMLBeans это отношение поддерживают соответствующие Java-классы. В листинге 2 показан некоторый псевдокод Java для работы с XMLBean, который исходит из этого XML-файла.


Листинг 2. Псевдокод Java для работы с XMLBean
        MyBook doc = MyBook.Factory.newInstance(); 
        Book book = doc.addNewBook();
        book.setTitle("Pro Apache Beehive"); 
        book.setIsbn("1590595157"); 
        String[] authors = new String[2]; 
        authors[0] = new String("Kunal Mittal"); 
        authors[1] = new String("Srinivas Kanchanavally"); 
        book.setAuthors(authors); 
        

XMLBeans и разработка SOA-приложений

Легко экстраполировать взаимосвязь XMLBeans и разработки SOA-приложений. XML является сердцем большинства SOA-технологий, независимо от того, используют они Web-службы или нет. Даже если вы считаете SOA эквивалентом Web-служб (что сегодня особенно верно, если не углубляться в детали), как разработчику SOA-проекта, вам, несомненно, придется работать с XML. Возможно, вы имеете практический опыт использования синтаксических XML-анализаторов (XML parser) для управления XML-содержимым и последующего преобразования XML-файла в объектную структуру для более удобной работы. Возможно, вы анализировали XML и искали конкретные данные в этих файлах. А может быть, вы преобразовывали одну XML-структуру в другую. XMLBeans решает эти проблемы в мире SOA: она делает за вас трудную работу, для того чтобы вы могли сконцентрироваться на написании Web-служб или других SOA-служб.

Работая с SOA или Web-службами, вы не пишете сервер приложений или XML-анализатор. Вместо этого вы используете различные инструменты, написанные производителем программного обеспечения или предоставленные в открытых исходных кодах, которые широко распространены, протестированы и имеют свой собственный жизненный цикл. Зачем вам писать код для преобразования XML в Java-объекты? Использование XMLBeans помогает уменьшить время разработки и тестирования ваших служб, повышая скорость предоставления служб.


Работа с XMLBeans в Apache Geronimo

Как указывалось выше, в данной статье используется Apache Geronimo в качестве контейнера развертывания в примерах. В этом разделе вы напишете простой XMLBean и развернете его в Geronimo.

Для начала вам необходима XML-схема. Вы можете начать работать с XML-схемой, либо сгенерировать ее. Это легко можно сделать при помощи нескольких XML-программ, например, XMLSpy и <oXygen/> XML. Можно также сгенерировать XML-схему в интерактивном режиме на сайте генерирования XMLBeans-схем (ссылка на него приведена в разделе "Ресурсы").

Пример XML-файла приведен в листинге 3. В этой статье не предоставляется какой-либо исходный код примеров. Вы должны взять XML-файл, с которым работали раньше, и сгенерировать схему, а затем из нее - XMLBean. Это позволит вам увидеть XMLBeans в действии.


Листинг 3. XML-пример
        <?xml version="1.0" encoding="UTF-8"?> 
        <bookDetail xmlns="http://beehive.apress.com/bookstore/vo"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://beehive.apress.com/bookstore/vo 
        file:/C:/ /code/chapter8/bookdetails.xsd"> 
          <book_Id>1</book_Id>
          <title>Pro Apache Beehive</title>
          <book_type>Book</book_type> 
          <author>Kunal Mittal, Srinivas Kanchanvally</author>
          <publication>Apress</publication>
          <publication_Date>2005-08-31</publication_Date>
          <catalogNo>123</catalogNo>
          <isbn>1590595157</isbn>
          <price>49.99</price> 
          <comments>The 1st book on Apache Beehive</comments> 
          <pages>300</pages>
          <available>false</available> 
        </bookDetail> 

Вы можете также сгенерировать XMLBeans непосредственно на Web-сайте XMLBeans - вам не нужно ничего загружать или запускать какие-либо программы. Для этого зайдите на Web-сайт XMLBeans Schema Validator (ссылка приведена в разделе "Ресурсы") и идите по ссылкам. На рисунке 2 изображена копия экрана. В качестве альтернативы вы можете загрузить дистрибутив XMLBeans; он содержит программу командной строки и задание Ant, которые могут генерировать XMLBean за вас.


Рисунок 2. Web-сайт проверки корректности XML-схем

После генерирования XMLBeans у вас будут иметься JAR-файлы (Java Archive), содержащие весь необходимый код. Вы должны загрузить исполняемые JAR-файлы XMLBean с Web-сайта Apache XMLBeans (ссылка приведена в разделе "Ресурсы") и разрешить вашему контейнеру (в данном случае Apache Geronimo) работать с созданными вами XMLBeans.

Если вы еще этого не сделали, загрузите и установите Apache Geronimo (ссылка на страницу загрузки приведена в разделе "Ресурсы"). Предположим, что вы установили Apache Geronimo в c:\java\geronimo-1.0 и XMLBeans в c:\java\xmlbeans-2.1.0. В оставшейся части статьи эти каталоги будут называться GERONIMO_HOME и XMLBEANS_HOME. Если вы используете другую структуру каталогов, измените названия этих каталогов соответствующим образом.

Хотя для XMLBeans не требуется сервер приложений, вы можете использовать XMLBeans с J2EE-приложениями (Java 2 Platform, Enterprise Edition), развернутыми на любом сервере приложений, включая Geronimo. В данной статье рассматриваются высокоуровневые концепции и некоторый псевдокод, демонстрирующий, как это сделать. Однако для наилучшего результата вы должны использовать реальные файлы.

Настройка вашего J2EE-приложения

Предположим, что вы создаете простое приложение для обмена информацией о книгах с библиотекой или Amazon.com через Web-службы. Классический сценарий предполагает, что вы пытаетесь использовать Web-службу Amazon. Вы можете попробовать один из сценариев, упомянутых в данной статье, либо использовать созданный вами XMLBean при помощи описанных выше шагов.

Прежде всего, скопируйте .jar-файлы в каталог XMLBEANS_HOME\lib вашего EAR-файла (Enterprise Archive). В зависимости от того, как и где вы планируете использовать XMLBean, возможно, вам понадобиться поместить эти файлы в APP-INF/lib или WEB-INF/lib. Вы даже можете поместить их в ваш каталог GERONIMO_HOME\lib и сделать их доступными для любого J2EE-приложения, развернутого на данном экземпляре сервера.

Затем, разверните ваше J2EE-приложение в Apache Geronimo, как объясняется в статье "Развертывание J2EE-приложений в Apache Geronimo" (developerWorks, январь 2006). Теперь вы готовы использовать возможности XMLBeans.

Настройка вашего XMLBean

Поместите .jar-файл, созданный вами для XMLBean (используя программу, предоставляемую как часть дистрибутива XMLBeans, или Web-сайт XMLBeans), либо в каталог APP-INF/lib, либо в WEB-INF/lib. Теперь, все что осталось сделать - написать код для XMLBean. Для данного примера вы напишете простую JSP-страницу (JavaServer Page), содержащую некоторый Java-код для работы с XMLBean.

Написание кода для работы с XMLBean

Код, приведенный в листинге 2, позволяет вам создать новые XML-документы; он использует базовые JavaBean-методы getters и setters для создания XML-документа при помощи XMLBean. В листинге 4 приведен код, позволяющий импортировать XML-файл в XMLBean.


Листинг 4. Чтение XML-файла в XMLBean
        BookDocument book = null; try { book =
        BookDocument.Factory.parse(pathtobookxmlfile); } catch (XmlException e) {
        e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 

Попробуйте этот код в JSP и разверните JSP-страницу в Geronimo для просмотра результатов.

В статье "Развертывание Web-служб в Apache Geronimo" (developerWorks, апрель 2005) рассматривается, как использовать Web-службы Amazon и работать с ними в Apache Geronimo. В качестве упражнения вы можете изменить данную методику работы с XMLBeans.


Заключение

В этой краткой, но практической статье вы узнали об основах технологии XMLBeans и способах работы с ней. Вы также выполнили элементарные действия по работе с XMLBeans в Apache Geronimo. Эти действия не отличаются и при использовании XMLBeans в IBM® WebSphere® Application Server, Apache Tomcat, JBoss или BEA WebLogic. Рассмотренные в данной статье темы применимы и для этих продуктов.

В данной статье также объясняется, почему XMLBeans может сократить время работы над SOA-проектами. Это передовая технология связывания Java-XML с точки зрения функциональных возможностей, гибкости и, самое важное, производительности.


Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Об авторе

Кунал Миттал

Кунал Миттал (Kunal Mittal) является консультантом, специализирующимся в Java-технологии, а также технологиях J2EE и Web-служб. Он соавтор нескольких книг по данным темам. Работает директором группы Domestic TV IT в Sony Pictures Entertainment, где отвечает за техническую архитектуру и управление приложениями. Более подробная информация приведена на его Web-сайте.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source, Технология Java, SOA и Web-сервисы, XML
ArticleID=157853
ArticleTitle=Развертывание SOA-приложений в Apache Geronimo с использованием XMLBeans
publish-date=05092006
author1-email=kunal@kunalmittal.com
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).