Когда в Orace ADF начинается разработка, то часто начинают использоваться данные не только c БД, но и с других источников. И очень часто каким то другим источником является веб сервис. Для взаимодействия сервиса c приложением используется "Web Service proxy".
В этой статье я хочу показать как создавать для сервиса "Web Service proxy" и с его помощью вызвать необходимые методы в сервисе(Сервис будет использоваться из предыдущей статьи
Работа с Web-сервисами в Oracle JDeveloper(Часть 1.Создание Web-сервиса ).Если вам не хочется читать прошлую статью используйте какой нибудь сервис с сайта http://www.service-repository.com/
Приступим. Для создания прокси класса нужно нажать CTRL+N и во вкладке "Web Services" выбрать Web Service proxy
Появится мастер создания прокси. Пропустив первый шаг, во втором впишите WSDL сервиса и уберите галочку "Copy WSDL Into Project"
Мастер состоит из 6 этапов(определение wsdl,определение в какие package создавать,демонстрация Port Endpoint,выбор типа методов, определение OWSM политик,определение handler классов) но в нашем случае, уже после второго этапа можно нажать "Finish". После этого сгенерируются все классы необходимые для работы с сервисом.
Имя файла
|
Описание
|
Calculating.java
|
Интерфейс с методами сервиса для их вызова.
|
CalculatingService.java
|
Имя файла сформированное по имени сервиса :<service name="CalculatingService">
В нем находятся адреса сервиса и метод getCalculatingPort для инициализации сервиса |
CalculatigPortClient.java
|
.Имя файла сформированное по <имя порта>Client.
Файл создан для проверки работы сервиса. Автоматически генерируется метод main со строками инициализирующих сервис: private static CalculatingService calculatingService; ........ calculatingService = new CalculatingService(); Calculating calculating = calculatingService.getCalculatingPort(); |
CalculatingServiceProxy
|
Контейнер сформированный по правилу <имя сервиса >Proxy.
Контейнер в котором находятся все необходимы файлы для работы сервиса(кроме файлов с типам). |
Если входящие и исходящие данные комплексные, то так же формируются классы заканчивающиеся на Request.java и Response.java соответственно.
Что бы вызвать сервис зайдем в CalculatigPortClient.java, к автоматически созданным строкам
calculatingService = new CalculatingService();
Calculating calculating = calculatingService.getCalculatingPort();
Добавьте:
Float result=calculating.calculate(4, 4, "+");
System.out.println("Результат"+result);
Так как наш сервис выглядел просто(в зависимости от введенного типа операции сложить,вычесть,умножить или разделить два числа), то и вызов его достаточно прост, но он отображает основу работы с web service proxy:
1.Создание экземпляра прокси класса :
private static CalculatingService calculatingService;
....
CalculatingService calculatingService = new CalculatingService();
private static CalculatingService calculatingService;
....
CalculatingService calculatingService = new CalculatingService();
2.Создание экземпляра интерфейса Calculating при помощи, сформированного метода getCalculatingPort():
Calculating calculatingServicePort =calculatingService.getCalculatingPort();
3.Вызов метода calculate из сервиса:
Float result=calculating.calculate(4, 4, "+");
При запуске CalculatigPortClient.java выводится:
Listening for transport dt_socket at address: 60175
Debugger connected to local process.
Source breakpoint occurred at line 20 of CalculatingPortClient.java.
Результат: 8.0
Process exited.
Debugger disconnected from local process.
Исходники можно скачать по этим ссылкам:
Web-сервис с прошлой статьи: https://docs.google.com/file/d/0ByLMFtz8FbBvajJ1V3RncXNhRTA
Приложение демонстрирующее вызов сервиса но немножку усовершенствованнный: https://docs.google.com/file/d/0ByLMFtz8FbBvZllCVV9TN25CcXc
Комментариев нет:
Отправить комментарий