воскресенье, 15 декабря 2013 г.

Работа с Web-сервисами в Oracle JDeveloper(Часть 3.Создание ADF Web service connection)

              Когда идет разработка продукта, то приложения деплоятся на много площадок  и сервисы соответственно находятся тоже на разных площадках. Если у вас всего один сервис в приложении, то вы можете просто перегенирировать  его. Но лучше всего использовать ADF Web service connection. При его помощи создаются соединения,  в которых потом в режиме реального  времени можно менять адреса к wsdl сервису.
             ADF Web service connection создается очень просто.Нужно  найти в  прокси классе сервиса контейнер, он заканчивается словом Proxy, нажать по нему правой кнопкой и выбрать там Create ADF Web Service Connection. 
   

      В появившемся окне можно ввести имя соединения и необходимые адреса.


            Нажав OK создастся соединение, проверить его можно в файле connections.xml(он находится во вкладке Application Resources->Descriptors->ADF META-INF)

            Соединение создано, теперь надо при вызове сервиса добавить несколько строк, то бы сервис вызывался с параметрами нашего соединения. Для этого нужно добавить следующие две строки

            Context ctx = ADFContext.getCurrent().getConnectionsContext();
            WebServiceConnection conn = (WebServiceConnection) ctx.lookup("CalculatingService");
 где CalculatingService - имя соединения.
           А так же сам сервис надо инициализировать со следующими параметрами:
    calculatingService = new CalculatingService(conn.getWsdlUrl(), conn.getDefaultService().getName());

          Готово теперь, когда у вас меняется адрес сервиса, вы не должны заново перегенирировать  прокси клас и передеплаивать приложение, а нужно просто  зайти в em     weblogic сервера, выбрать там свое приложение зайти и в Configure ADF Connections и исправить адрес сервиса