corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Привязка WSDL к Java с помощью JAXB

Архитектура Java для интерфейса API привязки XML (JAXB) упрощает доступ к документам XML из приложений, написанных на языке программирования Java. В этом документе показано, как среда IDE NetBeans 6.1 и 6.0 обеспечивает поддержку средств JAXB, преимущественно с помощью мастера, который преобразует различные типы документов XML в классы Java. С помощью файла WSDL будут созданы классы Java, над которыми затем будут выполнены некоторые операции.

В этом руководстве рассматриваются два специфических аспекта:

  • использование мастера в среде IDE для привязки схемы документа XML к множеству классов Java, представляющих схему;
  • применение различных средств, обеспечиваемых средой IDE для быстрого и эффективного использования созданных классов Java.

Для получения дополнительных сведений по архитектуре JAXB, а также по JAXB в целом, см. Chapter 2: Binding between XML Schema and Java Classes и Chapter 3: Using JAXB в руководстве The Java Web Services Tutorial.

Содержание

Содержимое на этой странице относится к среде IDE NetBeans 6.0 и 6.1

Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные ниже.

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans "All" версии 6.0 или 6.1
Необходимо установить подключаемый модуль SOA.
Комплект для разработчика на языке Java (JDK) версия 6 или
версия 5
Веб-сервер или сервер приложений, совместимый с Java EE Веб-сервер Tomcat 6.0 и/или
Сервер приложений GlassFish v2
Файл WSDL, используемый в этом руководстве:CreditReportSimple.wsdl

Серверы Tomcat и GlassFish могут быть установлены при помощи дистрибутива "Web and Java EE" среды IDE NetBeans. Также можно воспользоваться страницей загрузок GlassFish или страницей загрузок Apache Tomcat.

Создание объектов Java из документов XML

Цель этого упражнения состоит в создании проекта, а также объектов Java из документа XML.

  1. Выберите "File > New Project". В области "Categories" выберите "Java". В области "Projects" выберите "Java Application" и нажмите кнопку "Next".
  2. В поле "Project Name" введите JseSimpleClientReport и нажмите кнопку "Finish".
  3. Щелкните правой кнопкой мыши узел JseSimpleClientReport и выберите "New > Other > XML > JAXB Binding". Затем нажмите кнопку "Next". Откроется мастер "New JAXB Binding".
    Мастер JAXB

    Приведенные выше настройки, устанавливаемые в мастере, служат следующим целям:

    • Binding Name. Указывает имя новой привязки JAXB, которое будет использоваться для ее идентификации.
    • Project. Отображает имя текущего проекта.
    • Schema File. Файл, с которым будет осуществляться работа, может быть доступен локально или удаленно.
    • Schema Type. Поддерживаются следующие типы документов XML:
      • XML Schema
      • Relax NG
      • Relax NG Compact
      • XML DTD
      • WSDL
    • Package Name. Указывает пакет, для которого создаются объекты Java.
    • Compiler Options. Существует множество параметров компилятора, описанных в этом разделе в руководстве по Java EE 5. Но в мастере JAXB доступны только следующие параметры, которые можно установить с помощью флажков:
      • nv. Не выполнять строгую проверку достоверности входной схемы. По умолчанию перед обработкой выполняется строгая проверка достоверности исходной схемы. Это не означает, что во время привязки компилятор не выполняет никакой проверки достоверности; это просто означает, что производится менее строгая проверка.
      • readOnly. При этой настройке компилятор будет отмечать создаваемые исходные файлы Java как предназначенные только для чтения. По умолчанию компилятор не защищает от записи создаваемые исходные файлы Java.
      • npa. Подавляет создание аннотаций на уровне пакета в **/package-info.java. Использование этого переключателя приводит к тому, что создаваемый код встраивает эти аннотации в другие создаваемые классы.
      • verbose. Обеспечивает максимум выходных данных компилятора, например, информацию о ходе выполнения и предупреждения.
      • quiet. Подавляет выходные данные компилятора, такие как информация о ходе выполнения и предупреждения.
    • Use Extension. По умолчанию компилятор строго реализует правила, описанные в главе "Compatibility" спецификации JAXB. В стандартном (строгом) режиме также имеются ограничения на использование тех настроек привязки, которые определены в спецификации. При выборе этого параметра разрешается использовать расширения JAXB Vendor Extensions.
    • Use Binding File. Позволяет импортировать и изменять один или несколько файлов настройки привязки JAXB.
    • Use Catalog File. Позволяет импортировать и изменять файлы каталога OASIS.
  4. Введите CreditReport в поле "Binding Name" и org.netbeans.j2ee.wsdl.creditreport в поле "Package Name".
  5. Рядом с "Select From Local File System", нажмите кнопку "Browse" и перейдите к файлу WSDL, который был загружен в начале этого руководства.
  6. В раскрывающемся списке "Schema Type" выберите "WSDL". Экран должен выглядеть следующим образом:
    Мастер JAXB с установленными настройками
  7. Нажмите кнопку "Finish".

Из указанного документа XML средой IDE автоматически создаются объекты Java. В следующем разделе исследуются объекты Java в среде IDE.

Исследование выходных данных мастера JAXB

Цель этого упражнения состоит в знакомстве со средствами среды IDE NetBeans для работы с мастером JAXB.

  1. Аналогично другим элементам, которые IDE восстанавливаются средой IDE каждый раз при сборке проекта, объекты Java создаются в папке build. Откройте окно "Files", а затем просмотрите местоположение созданных объектов Java:
    Вид проекта с созданными объектами Java
  2. Как показано ниже, в окне "Projects" отображается новый узел, содержащий файл WSDL. Обратите внимание на то, что можно щелкнуть правой кнопкой мыши узел "CreditReport" и во вновь открывшемся мастере изменить параметры настройки, указанные ранее.
    Контекстное меню к CreditReport с пунктом "Change JAXB Options"

    Также следует отметить, что для JDK 5 мастер поместил библиотеки JAXB по пути к классам приложения. В JDK 6 библиотеки JAXB предоставляет сам JDK, поэтому новые узлы к узлу "Libraries" не добавляются.

  3. Предположим, что в мастере были изменены параметры настройки, и снова создадим объекты Java, как указано ниже:
    Контекстное меню к "JAXB Binding" с пунктом "Regenerate Java Code"
  4. Щелкните правой кнопкой мыши файл WSDL и выберите "Open". Документ открывается в редакторе с тремя вкладками: "Source", "WSDL" и "Partner". Выберите WSDL и обратите внимание на открывшееся визуальное представление, позволяющее быстро просмотреть и изменить файл WSDL.
    Файл WSDL "Credit Report Simple" в редакторе WSDL

После создания в среде IDE объектов на основе документа XML можно с помощью рассмотренных средств выполнить над созданными объектами Java ряд целесообразных операций.

Работа с объектами Java

Целью этого упражнения является выполнение важных операций с файлами и кодом, созданными в среде IDE. Необходимо установить несколько значений в одном из созданных объектов Java, а затем поместить его в окно "Output" среды IDE.

  1. Откройте класс Main, созданный мастером "New Java Application".
  2. В конструкторе объявите CreditReport, который является одним из созданных корневых классов JAXB:
    public static void main(String[] args) {
         CreditReport cr = new CreditReport();
            }
  3. Теперь для начала работы с объявлением просто введите "cr." и обратите внимание на то, что при нажатии комбинации клавиш Ctrl-Space среда IDE обеспечивает для артефактов JAXB соответствующее автозавершение кода:
    Варианты автозавершения кода
  4. Установите несколько значений для класса JAXB, например:
        cr.setFirstName("Butros Butros");
        cr.setLastName("Gali");
        cr.setDob("1930/05/30");
        cr.setScore("900");
        cr.setSsn("123-45-6789");
    
        cr.setLatestAddress1("2500 Some Ave");
        cr.setLatestAddress2("Suite 5000");
        cr.setCity("New York");
        cr.setState("New York");
        cr.setCountry("USA");
        cr.setPostalCode("NY 12345-6789");
    
        cr.setCurrency("USD");
        cr.setLiability(BigInteger.valueOf(2000000));
        cr.setLiquidAssests(BigInteger.valueOf(3000000));
        cr.setImmovableAssests(BigInteger.valueOf(5000000));
            
  5. Введите в редакторе буквы "jaxbm". Эти буквы означают "JAXB Marshalling" (выстраивание в определенном порядке). Экран должен выглядеть следующим образом:
    Фрагмент кода в редакторе с jaxbm, подчеркнутым красным цветом

    Появление красного подчеркивания обусловлено тем, что из введенных символов невозможно составить слово, которое являлось бы частью языка программирования Java. В действительности эти буквы формируют шаблон кода NetBeans, который будет использован в следующем действии. Связанный с ним шаблон кода называется "jaxbu", что означает "JAXB Unmarshalling" (без выстраивания в определенном порядке).

  6. Нажмите клавишу Tab.

    Символы "jaxbm" разворачиваются, и появляется фрагмент кода:

    try {
        javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(cr.getClass().getPackage().getName());
        javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); //NOI18N
        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        marshaller.marshal(cr, System.out);
    } catch (javax.xml.bind.JAXBException ex) {
        // XXXTODO Handle exception
        java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
    }
  7. Щелкните правой кнопкой мыши любую часть тела кода и выберите "Fix Imports". К коду будут добавлены необходимые операторы импорта пакета. Все указания на ошибки должны исчезнуть.

    Теперь следует воспользоваться различными средствами, предоставляемыми средой IDE для работы с JAXB в редакторе. Наше небольшое приложение готово к развертыванию.

  8. Запустите приложение. В окне "Output" должно отобразиться следующее:
    Выходные данные отчета ClientReport


Дополнительная информация

Для получения дополнительных сведений о разработке приложений для Java EE в среде IDE NetBeans см. следующие материалы:

Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems