В предыдущей статье я познакомил вас с подробным объяснением учебника по веб -сервису (I)
Причины использования инструментов:
1. Используйте инструменты, чтобы лучше понять процесс запросов веб -сервиса
2. Используйте инструмент wsexplore, чтобы получить формат передачи и приема данных SOAP.
3. Используйте инструмент TCP/IP -монитор для мониторинга конкретных данных заголовка запроса перехвата и заголовка ответа
Что такое мыло?
SOAP - это текстовый протокол, основанный на спецификации кодирования XML. Проще говоря, SOAP - это передача данных XML на HTTP для реализации удаленных вызовов [независимо от того, на каком языке записан ваш сервер, если вы получаете данные XML протокола SOAP и возвращайте данные XML протокола SOAP, он может вызвать любым языком]
Использование экземпляра WsexPlorer: убедитесь, что QQ онлайн
При использовании проверки QQCcheCkonline в QQONlineWebservicesOAP, возвращаемый
qqCheckonlinerSponse
qqCheckonLineresult (String): n
Нажмите «Источник», чтобы увидеть подробную информацию, информация следующая:
1: это формат сообщения:
Кода -копия выглядит следующим образом:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: q0 =" http://webxml.com.cn/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema " xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance">
-
-
870931520
2: Ниже приведено полученный формат XML
Кода -копия выглядит следующим образом:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema "xmlns: xsi =" http://www.w3.org/2001/xmlsch
-
- http://webxml.com.cn/ ">
Не
При использовании QQONLINEWEBSERVICEHTTPGEGE или QQONLINEWEBSERSERVICEHTPPOST, возвращенные
Nhttp: //webxml.com.cn/ "> n>
Использование монитора TCP/IP
Monitor TCP/IP может не только увидеть данные SOAP, но и получить информацию о заголовке для HTTP -запросов и приемов.
1. Местоположение: Этот инструмент расположен по адресу: window> Показать представление> Другое> MyeClipse Common (Common Tools)> TCP/IP -монитор
2. Этот инструмент эквивалентен агенту. После запуска он прослушивает локальный порт, а затем пересылает запрос на указанный целевой IP и порт.
После получения данных верните данные к клиенту нетронуты. В глазах клиентов этот агент всегда должен быть первым, кто доступен, иначе мы не увидим процесс передачи данных.
3. Параметры конфигурации:
В интерфейсе Open TCP/IP Monitor: Manu (небольшая стрелка в верхнем правом направлении)> Свойства> Добавить (добавить справа)
Установить на следующие свойства:
Первый шаг:
1) Локальный порт мониторинга (прослушивайте локальный номер порта): 9876, установите 4-битный номер порта по желанию, и будет доступен в форме http://127.0.0.1:9876
2) Имя хоста (сервер, который будет слушать, например, www.vevb.com): 127.0.0.1. Поскольку машина публикует веб -сервис, она отслеживает нативный IP. Это также может быть любой хост.
3) Порт (порт целевого сервера, который должен слушать): 6666 - Потому что опубликованный нами веб -сервис - http://127.0.0.1:6666/helloworld, 6666 - это номер порта, который необходимо прослушать.
4) Тип (тип прослушивания):
- TCP/IP: исходный адрес будет использоваться для продолжения доступа к следующему запросу, такому как пользовательский ввод: http://127.0.0.1:9876/helloworld?wsdl вернется к адресу доступа WSDL, как и раньше.
- http: адрес назначения будет продолжать доступ к следующему запросу. В качестве пользовательского ввода: http://127.0.0.1:9876/helloworld?wsdl будет использовать http://127.0.0.1:6666/helloworld для доступа к методу Sayhi при запросе метода. Этот метод больше не будет прокси. Потому что это больше не номер порта, который слушают.
При прослушивании я выбрал TCP/IP, а затем проверил изменение адреса в возвращенном файле WSDL, введя: http://127.0.0.1:9876/helloworld?wsdl в адресной строке.
Time Out: Установите время подключения, когда доступ не увенчался успехом, и держите его до 0, то есть оно не установлено.
После настройки нажмите кнопку ОК, а затем нажмите кнопку «Пуск» справа, и начался мониторинг.
Шаг 2:
Настройте URL -адрес WSDL на веб -сервисе MyeClipse на: http://127.0.0.1:9876/helloworld?wsdl, обратите внимание, что используется порт MyeClipse TCP/IP -монитор. Вместо прямого посещения http://127.0.0.1:6666/helloworld?wsdl опубликовано
Как изменить содержание файла WSDL?
Используйте аннотации Webservice.
1. @Служба определения веб-сервиса
2. @Метод определения Webmethod
3. @webresult defination
4. @Параметры Define Webparam
Примечание: разные версии поддерживают разные уровни комментариев:
1. 1.5 не поддерживается.
2. Версии до 1.6.0_20 должны использовать полные аннотации.
3. После 1.6.0_21 вы можете использовать только @webservice для аннотирования класса.
Функция комментариев:
Благодаря комментариям веб -сервиса вы можете описать веб -сервис более ярко. Это генерирует документ WSDL.
Когда аннотация веб -сервиса будет изменена, код, сгенерированный клиентом, также повлияет на.
Метод и имена параметров также изменились.
Пример:
@Webservice (name = "myname", // Соответствующее порттип name = "myname" portname = "myport", // Соответствующее имя порта = "myport" serviceName = "myservice", // Соответствующее имя службы = "myservice" caseNamespace = "http://leaf.com/mynamespace") write write staricld statiplord statiplord statiplor SimpleDateFormat SDF = new SimpleDateFormat ("yyyy-mm-dd HH: MM: SS"); @WebMethod (action = "myAction", // определить SOAPAction = "MYACTION", чтобы найти этот метод для выполнения операции name = "myoperationName") // Определить метод, который можно назвать, и будет создан конкретный метод соответствующего класса, string name = ".." "Привет, мир"; } @Webmethod (action = "mysayhiaction", aperianname = "mysayhioperationname") public @webresult (name = "mysayhiresult") String sayshi (@webparam (name = "myparaname", // Поместите параметры в информацию о головке, чтобы защитить параметры. "Привет:"+name+", текущее время:"+sdf.format (new date ()); вернуть Str; } public static void main (string [] args) {endpoint.publish ("http://127.0.0.1:6666/helloworld", new helloworld ()); }}3: После того, как вышеупомянутая программа была выпущена для публики, мы получаем доступ к ней через Myeclipse Webservice Explorer
Вы найдете другое быстрое сообщение, чем раньше, но на самом деле тот же метод все еще вызывается.
4: используйте Wsimport S снова. http://127.0.0.1:6666/helloworld?wsdl для генерации кода Java, а затем вызовите следующее, приводится вызовный код (его можно описать как неузнаваемое, но та же работа выполняется.)
пакет com.leaf.mynamespace; открытый класс main {public static void main (string [] args) {// Проанализировав wsdl, мы видим, что вызов Getmyport из MyService возвращает myName myname myname = new myservice (). getmyport (); // Вызовите метод Sayhi через mysayhioperationname myname string str = myname.mysayhioperationname ("wang jian"); System.err.println (str); }}Подробное объяснение учебника Webservice (ii) Позвольте мне сначала представить его вам здесь, я надеюсь, что это будет полезно для вас!