Передача двоичных данных с помощью приложения веб-службы, часть 4: изменение файлов схемы и WSDL
В этом уроке рассматривается добавление файла WSDL и файла схемы в веб-приложение. Также описывается изменение файла схемы для интерпретации массива байтов как изображений. Кроме того, в этом уроке представлены способы редактирования исходного кода веб-службы для правильного определения местоположения файлов схемы и WSDL. В процессе изучения учебного курса описаны различные средства среды IDE для работы с файлами WSDL и схемы.
Процедуру, рассматриваемую в этом разделе, можно применять к любым веб-службам JAX-WS для передачи данных типа MIME в качестве двоичных данных. В качестве основы для настройки схем WSDL и XML можно использовать веб-службу, передающую двоичные данные, которая была создана при изучении уроков 2 и 3. В настроенном файле схемы XML в возвращаемый элемент добавляется атрибут expectedContentTypes="mime_type" для двоичных данных. Этот атрибут сообщает клиенту о необходимости сопоставления двоичных данных с типом Java (сопоставление "MIME > Тип Java"), а не с массивом байтов. В этом учебном курсе выполняется сопоставление двоичных данных с java.awt.Image, однако двоичные данные можно сопоставлять с любыми типами Java, указанными в спецификации JAXB 2.0, как описано в руководстве пользователя по JAX-WS.
Изменение файла схемы и файлов WSDL для передачи двоичных данных
Ниже приведена процедура создания измененных файлов WSDL схемы XML для веб-службы, созданной при изучении предыдущего учебного курса. Измененные файлы WSDL и схемы позволяют веб-службе и потребляющим ее клиентам обрабатывать данные изображений JPEG, передаваемых как двоичные данные.
Изменение файлов WSDL и схемы:
Разверните в окне "Проекты" узлы веб-приложения FlowerService до узла WEB-INF. Щелкните папку WEB-INF правой кнопкой мыши и выберите пункт "Создать", а затем – "Папка". (При необходимости выберите "Создать" > "Прочее", а затем – категорию "Прочее").
Нажмите кнопку "Далее". Откроется страница "Имя и местоположение". Присвойте папке имя wsdl.
Нажмите кнопку "Готово". В окне "Проекты" появится папка wsdl.
Разверните узел "Веб-службы" и щелкните правой кнопкой мыши узел FlowerService. Выберите команду "Создать и копировать файл WSDL"
Откроется диалоговое окно "Создать и копировать файл WSDL" с деревом навигации. Перейдите к созданной папке wsdl (FlowerAlbumService > web > WEB-INF > wsdl) и щелкните ОК.
Теперь в узле wsdl отображаются файлы FlowerService.wsdl и FlowerService_schema1.xsd. Также выводится новый узел для созданных исходных файлов (jax-ws).
Необходимо явно указать на необходимость использования созданной версии файла WSDL для сервера приложений. В противном случае на сервере приложений будет создан собственный файл WSDL. Откройте файл FlowerService.java и найдите аннотацию @WebService. Добавьте в эту аннотацию параметр wsdlLocation="WEB-INF/wsdl/FlowerService.wsdl" следующим образом:
Измените файл схемы FlowerService_schema1.xsd таким образом, чтобы он определял ожидаемый тип возвращаемого элемента. Для определения возвращаемого элемента в файле схемы откройте этот файл и найдите составные типы getThumbnailResponse и getFlowerResponse:
Теперь при повторном развертывании веб-службы в приложении тестирования и вызове одной из операций можно убедиться, что изображение возвращается корректно:
После подтверждения в приложении тестирования, что изображения возвращаются корректно, можно создать клиент Swing для получения и отображения изображений.
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE в среде IDE NetBeans можно в списке рассылки .