2015-08-06 2 views
3

Я очень новичок в создании веб-сервисов, поэтому, пожалуйста, простите мое невежество.wsdl2java и axis2 установка и тестирование webservice

Мне были даны некоторые файлы .wsdl с некоторыми .xsd файлами, которые он импортирует.

Мне сказали, что из файла .wsdl можно создать веб-сервис, используя wsdl2java от проекта apache axis2.

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

Основа для моих действий была от here, но не слишком уверенна, насколько это применимо.

Я нахожусь на MacOSX, но также имею доступ к системе ubuntu.

шаги, которые я взял до сих пор являются:

cd /directory/of/wsdl/file 
wsdl2java.sh -uri tmp.wsdl -d adb -s 

Это создает build.xml файл и src каталог

затем я пытаюсь запустить

ant 

или

ant jar.client 

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

Заранее спасибо.

+0

Попробуйте '-ss' варианта, чтобы создать каркас для сервера. – approxiblue

+1

- это то, что в строке 'wsdl2java.sh -uri tmp.wsdl -d adb -s'? т.е. преобразовать его в 'wsdl2java.sh -uri tmp.wsdl -d adb -s -ss'? –

+0

Как бы вы также протестировали новую услугу? –

ответ

1

В веб-сервисе SOAP: - Основная концепция веб-сервиса заключается в том, что у него есть потребитель и производитель. Потребитель - это тот, который потребляет веб-сервис, а производитель - это тот, который производит веб-службу. Производитель публикует свою услугу, чтобы потребитель мог ее использовать. Он в основном публикует файл wsdl, чтобы вы могли создать клиентский код или банку из него и можете напрямую вызывать его из своего кода. Вы можете использовать мыльный интерфейс для непосредственного вызова веб-службы. Если вы ищете генерировать код производителя из wsdl, это не будет достаточно хорошим, так как он не будет предоставлять вам бизнес-логику, и вам нужно реализовать его самостоятельно. Это не рекомендуется. Как правило, первая реализация Java написана и на ее основе создается wsdl, из которого создаются клиентские банки для того, чтобы клиенты использовали веб-службу в своем коде. Для непосредственного тестирования используется производитель soapui. Если вы хотите создать производителя, это прямой процесс. Необходимо создать динамический проект в eclipse -> создать класс -> использовать @WebService (serviceName = "xyz") для класса и аналогично на уровне метода определить @WebMethod. Разверните его как запущенный на сервере, и вы закончите работу с продюсером веб-сервиса Hello World.

Для создания клиента: -

Давайте рассмотрим пример, опубликованного WSDL в сети, как: -

http://www.webservicex.net/geoipservice.asmx?WSDL 

Прежде всего, необходимо создать клиент банку или Java-классы, как: -

wsimport -keep -s C:\wsdl http://www.webservicex.net/geoipservice.asmx?WSDL 

Посмотрите на документацию или посмотрите имя службы в wsdl. Это будет GeoIPService. Теперь в классе вызывается метод WebService, как: -

package com.soap.client; 

import net.webservicex.GeoIP; 
import net.webservicex.GeoIPService; 
import net.webservicex.GeoIPServiceSoap; 
public class SoapWebServiceClient { 

    public static void main(String[] args) { 
     GeoIPService ipService = new GeoIPService(); 
     GeoIPServiceSoap gp = ipService.getGeoIPServiceSoap(); 
     GeoIP ip = gp.getGeoIP("117.198.208.1"); //google.com 
     System.out.println(ip.getCountryName()); 
    } 

} 

Теперь аналогично для локального WSDL вы можете создавать классы и банки с помощью с помощью Axis2 или просто wsimport

Поместите WSDL и схемы в папке, ниже: -

C:\wsdl>wsimport -keep -s C:\wsdl C:\wsdl 
C:\wsdl>wsimport -clientjar client.jar C:\wsdl 

Он создаст для вас клиента. Посмотрите имя службы и аналогичным образом можете протестировать развернутую службу из java-кода, как показано выше.

Для тестирования с использованием soapui вам необходимо скачать его и создать новый проект с мылом. Дайте имя и перейдите на свой локальный диск, где присутствуют все схемы и wsdl. Он создаст все ваши запросы. Вам нужно заполнить значения в параметрах запроса («?») И запустить службу. Если все будет хорошо, это покажет результат.

Примечание: -

wsimport это инструмент командной строки для эталонной реализации JAX-WS. JAX-WS RI использует JAXB для привязки данных.

Axis2 в какой-то мере реализует API JAX-WS, поэтому созданные артефакты Java могут быть совершенно разными по сравнению с теми, которые генерируются JAX-WS RI. Также Axis2 не использует JAXB, но вместо этого предлагает выбор ADB (по умолчанию), Apache XmlBeans или JiBX для привязки данных. Наиболее широко используются либо xmlbeans, либо JAXB.

+0

Более того, вы можете посмотреть http://stackoverflow.com/questions/22460571/how-do-you-convert-wsdl-to-java-classes-using-eclipse –

1

Вы выполните поиск файла WSDL из издательской URL и перепроектировать веб-сервис для создания типов, так что используйте wsimport

wsimport -d . -p servicesource -keep tmp.wsdl 
Смежные вопросы