corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Передача двоичных данных с помощью приложения веб-службы, часть 5: изменение файлов схемы и WSDL

В этом разделе к приложению добавляются файл WSDL и файл схемы. Затем они изменяются для интерпретации массивов байтов как изображений. Также выполняется корректировка различных частей приложения для правильного определения местоположения схемы и файла WSDL. В процессе изучения руководства проводится ознакомление с различными средствами среды IDE, предназначенными для работы с файлами схемы и WSDL.

Руководства этой учебной карты

Содержимое на этой странице относится к среде IDE NetBeans 6.1
  1. Обзор
  2. Создание модуля EJB
  3. Создание веб-службы
  4. Тестирование веб-службы
  5. => Изменение файлов схемы и WSDL для передачи двоичных файлов
  6. Создание клиента Swing
  7. Протоколирование и оптимизация веб-службы

Изменение файлов схемы и WSDL для передачи двоичных файлов

В следующей процедуре для веб-службы, созданной в предыдущем руководстве, создаются измененные файлы WSDL и схемы XML. Измененные файлы WSDL и файлы схемы позволяют веб-службе и потребляющим ее клиентам обрабатывать данные изображений JPEG, передаваемых в виде двоичных данных.

Изменение файлов схемы и WSDL:

  1. Разверните узлы веб-приложения вплоть до узла wsdl.
    Приложение на Java с потребляемой веб-службой

    Примечание: В настоящее время узел пуст. Файл WSDL и схема создаются в момент развертывания, поскольку используются параметры настройки по умолчанию. Следовательно, этот узел, в котором содержались бы эти файлы, пуст. Поскольку массивы байтов требуется интерпретировать как изображения, необходимо предоставить собственный файл WSDL и схему. Они размещаются в этом узле.

  2. Щелкните правой кнопкой мыши узел wsdl и выберите "New > Other". Открывается мастер создания файла. Откройте категорию "XML" и выберите "XML Schema". Присвойте файлу схемы имя FlowerService.xsd.
  3. Повторите действие 2, но на этот раз выберите из категории "XML" вариант "WSDL Document". Присвойте файлу имя FlowerService.wsdl.

    Теперь узел wsdl должен выглядеть следующим образом:
    Приложение на Java с потребляемой веб-службой

  4. Скопируйте содержимое файла WSDL из обозревателя в шаблон, созданный выше. Если при создании и развертывании веб-службы использовались значения по умолчанию, файл WSDL располагается в следующем местоположении:

    http://localhost:8080/FlowerService/FlowerService?WSDL

    Вставьте в файл WSDL объявления пространства имен. Эти объявления требуются для обеспечения правильности WSDL. Замените строки в начале файла:

    <!--
     Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1.
    -->
    
    <!--
     Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1.
    -->
    
            <definitions targetNamespace="http://album.flower/" name="FlowerService">

    нижеприведенным текстом:

    <definitions xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        targetNamespace="http://album.flower/"
        xmlns="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        name="FlowerService"
            xmlns:tns="http://album.flower/">
  5. Аналогичным образом скопируйте файл схемы в файл шаблона. Файл схемы по умолчанию располагается в следующем местоположении:

    http://localhost:8080/FlowerService/FlowerService?xsd=1

    Вставьте в файл схемы объявления пространства имен. Эти объявления требуются для обеспечения правильности файла схемы. Замените строки в начале файла:

    <!--
     Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1.
    -->
    
                <xs:schema version="1.0" targetNamespace="http://album.flower/">

    нижеприведенным текстом:

    <xs:schema xmlns:tns="http://album.flower/"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                version="1.0" targetNamespace="http://album.flower/">
  6. Затем измените файл WSDL и установите ссылку на локальный файл схемы вместо файла из сети. Откройте файл WSDL в режиме проектирования, как показано ниже.
    Приложение на Java с потребляемой веб-службой

    Разверните узел "Types". Щелкните правой кнопкой мыши узел "Referenced Schema". Выберите "Add > Import". Откроется диалоговое окно "Add Import".
  7. Как показано ниже, теперь можно перейти к файлу схемы и выбрать его:


    Приложение на Java с потребляемой веб-службой

  8. Нажмите кнопку "OK".

  9. Удалите вторую ссылку на схему, относящуюся к файлу схемы из сети, на который более не требуется ссылаться, после чего появится возможность доступа к узлам из файла схемы. Это указывает на правильную установку ссылки:
    Приложение на Java с потребляемой веб-службой
  10. Серверу приложений следует явно указать на необходимость использования созданной версии файла WSDL; в противном случае сервер приложений создает из аннотаций веб-службы собственный файл WSDL.
    @WebService(serviceName = "FlowerService",
            wsdlLocation = "WEB-INF/wsdl/FlowerService.wsdl")

    Теперь класс веб-службы должен выглядеть следующим образом:
    Приложение на Java с потребляемой веб-службой

  11. Задача всего этого раздела заключается в создании измененного файла схемы, в котором указывается ожидаемый тип содержимого возвращаемого элемента. Для идентификации возвращаемого элемента в файле схемы необходимо открыть файл схемы и обратиться к строке, приведенной ниже, а также к коду на строке 39; в обоих случаях конкретные номера строк в разных приложениях могут отличаться:
    Приложение на Java с потребляемой веб-службой
  12. Оставьте все существующие элементы, однако добавьте к ним обоим следующие атрибуты:

    xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"

    Теперь те же строки должны выглядеть следующим образом:
    Приложение на Java с потребляемой веб-службой

  13. Теперь после повторного развертывания веб-службы в приложении "Tester" при вызове одной из операций изображение возвращается корректно:
    Приложение на Java с потребляемой веб-службой

После проверки достоверности возврата изображений приложением "Tester" можно создать собственный клиент "Swing" для получения и вывода этих изображений.

Примечание: Исправленные версии файлов WSDL и файлов схемы доступны в демонстрационном проекте, который можно загрузить. Оба файла расположены в папке web/WEB-INF/wsdl.

Что дальше?

Создание клиента Swing

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

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