Передача двоичных данных с помощью приложения веб-службы, часть 5: изменение файлов схемы и WSDL
В этом разделе к приложению добавляются файл WSDL и файл схемы. Затем они изменяются для интерпретации массивов байтов как изображений. Также выполняется корректировка различных частей приложения для правильного определения местоположения схемы и файла WSDL. В процессе изучения руководства проводится ознакомление с различными средствами среды IDE, предназначенными для работы с файлами схемы и WSDL.
Изменение файлов схемы и WSDL для передачи двоичных файлов
В следующей процедуре для веб-службы, созданной в предыдущем руководстве, создаются измененные файлы WSDL и схемы XML. Измененные файлы WSDL и файлы схемы позволяют веб-службе и потребляющим ее клиентам обрабатывать данные изображений JPEG, передаваемых в виде двоичных данных.
Изменение файлов схемы и WSDL:
Разверните узлы веб-приложения вплоть до узла wsdl.
Примечание: В настоящее время узел пуст. Файл WSDL и схема создаются в момент развертывания, поскольку используются параметры настройки по умолчанию. Следовательно, этот узел, в котором содержались бы эти файлы, пуст. Поскольку массивы байтов требуется интерпретировать как изображения, необходимо предоставить собственный файл WSDL и схему. Они размещаются в этом узле.
Щелкните правой кнопкой мыши узел wsdl и выберите "New > Other". Открывается мастер создания файла. Откройте категорию "XML" и выберите "XML Schema". Присвойте файлу схемы имя FlowerService.xsd.
Повторите действие 2, но на этот раз выберите из категории "XML" вариант "WSDL Document". Присвойте файлу имя FlowerService.wsdl.
Теперь узел wsdl должен выглядеть следующим образом:
Скопируйте содержимое файла WSDL из обозревателя в шаблон, созданный выше. Если при создании и развертывании веб-службы использовались значения по умолчанию, файл 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">
Вставьте в файл схемы объявления пространства имен. Эти объявления требуются для обеспечения правильности файла схемы. Замените строки в начале файла:
<!--
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/">
Затем измените файл WSDL и установите ссылку на локальный файл схемы вместо файла из сети. Откройте файл WSDL в режиме проектирования, как показано ниже.
Разверните узел "Types". Щелкните правой кнопкой мыши узел "Referenced Schema". Выберите "Add > Import". Откроется диалоговое окно "Add Import".
Как показано ниже, теперь можно перейти к файлу схемы и выбрать его:
Нажмите кнопку "OK".
Удалите вторую ссылку на схему, относящуюся к файлу схемы из сети, на который более не требуется ссылаться, после чего появится возможность доступа к узлам из файла схемы. Это указывает на правильную установку ссылки:
Серверу приложений следует явно указать на необходимость использования созданной версии файла WSDL; в противном случае сервер приложений создает из аннотаций веб-службы собственный файл WSDL.
Теперь класс веб-службы должен выглядеть следующим образом:
Задача всего этого раздела заключается в создании измененного файла схемы, в котором указывается ожидаемый тип содержимого возвращаемого элемента. Для идентификации возвращаемого элемента в файле схемы необходимо открыть файл схемы и обратиться к строке, приведенной ниже, а также к коду на строке 39; в обоих случаях конкретные номера строк в разных приложениях могут отличаться:
Оставьте все существующие элементы, однако добавьте к ним обоим следующие атрибуты:
Теперь те же строки должны выглядеть следующим образом:
Теперь после повторного развертывания веб-службы в приложении "Tester" при вызове одной из операций изображение возвращается корректно:
После проверки достоверности возврата изображений приложением "Tester" можно создать собственный клиент "Swing" для получения и вывода этих изображений.
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .