Можно ли создать клиент веб-сервиса исключительно из файла wsdl?

Я создаю клиент веб-сервиса. Я использовал файл WSDL для создания заглушек на стороне клиента. Но теперь мне нужно пройти аутентификацию в веб-службе и вызвать методы. Я проверил несколько руководств о том, как это должно быть сделано, но они всегда объясняют создание кода клиента и кода сервера, а затем их совместную работу.

Мне было интересно, содержится ли вся информация, необходимая для аутентификации и вызова запросов, в файле WSDL (и, следовательно, автоматически сгенерированном коде)? Или я должен также знать код веб-сервиса?

Любая помощь приветствуется.


person ghostlines    schedule 30.07.2010    source источник


Ответы (2)


Вообще говоря, WSDL должен быть всем, что вам нужно (при условии, что он написан кем-то, кто знает, что делает).

Хорошо написанный WSDL должен иметь разумные имена методов и параметров, чтобы созданные привязки клиента были более или менее понятными. Через атрибут <annotation><documentation></documentation></annotation> следует добавлять комментарии для устранения любых неясностей. Другими словами, думайте о WSDL так же, как о странице API JavaDoc. Вам не нужно заботиться о том, что находится внутри черного ящика, если вы знаете, что вам нужно положить туда и что вы получите из этого.

Что касается механизмов аутентификации, то на самом деле следует рассмотреть два случая: аутентификация на уровне веб-сервиса и аутентификация на уровне сервера приложений.

На уровне сервера приложений (например, Tomcat или GlassFish) WSDL не даст вам указания на используемый метод аутентификации (поскольку WSDL находится на уровне выше сервера приложений). В этом случае вы можете попробовать выполнить отладку, обратившись к файлу WSDL в браузере (или попробовать вызвать службу в SoapUI) и посмотрите, что вам нужно для аутентификации.

На уровне веб-сервиса механизм безопасности должен быть описан в WSDL. Я не знаю ни одной IDE, которая могла бы автоматически распознавать механизм аутентификации, описанный в WSDL, а затем подсказывать вам, что вам нужно предоставить (хотя на самом деле я использую только NetBeans). Тем не менее, вы должны быть в состоянии решить это - либо изучив WSDL, либо просмотрев сообщения об ошибках, которые выдает ваш клиент веб-службы, когда вы пытаетесь получить доступ к защищенному ресурсу.

person Catchwa    schedule 10.08.2010

Файл WSDL не содержит информации о порядке вызова определенных функций (если таковые имеются). Так что, на мой взгляд, всегда должна быть дополнительная документация.

person pritaeas    schedule 30.07.2010
comment
о, спасибо большое, в сгенерированном коде есть комментарии, которые служат хоть какой-то документацией. Но я думаю, что мне действительно нужно больше документации, особенно для аутентификации. - person ghostlines; 30.07.2010