Конечные точки SOAP и HTTP — WCF
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
В примере SoapAndHttpEndpoints показано, как реализовать службу на основе RPC и предоставить ее в формате SOAP и формате POX с помощью модели веб-программирования WCF. Дополнительные сведения о привязке HTTP для службы см. в примере базовой службы HTTP. В данном образце акцент сделан на особенностях предоставления одной и той же службы через протокол SOAP и HTTP с использованием разных привязок.
Что демонстрирует
Предоставление службы RPC по протоколу SOAP и HTTP с помощью WCF.
Этот пример состоит из двух компонентов: проекта веб-приложения (службы), содержащего службу WCF и консольное приложение (клиент), которое вызывает операции службы с помощью привязок SOAP и HTTP.
Служба WCF предоставляет 2 операции ,GetData
а PutData
также передает строку, переданную в качестве входных данных. Операции службы помечены атрибутами WebGetAttribute и WebInvokeAttribute. Эти атрибуты управляют HTTP-проекцией операций. Кроме того, они помечены атрибутом OperationContractAttribute, который позволяет предоставлять их через привязки протокола SOAP. Метод службы PutData
создает исключение WebFaultException, которое отправляется обратно по протоколу HTTP с помощью кода состояния HTTP и отправляется обратно по протоколу SOAP в виде ошибки SOAP.
Файл Web.config настраивает службу WCF с 3 конечными точками:
Конечная точка ~/service.svc/mex предоставляет доступ к метаданным службы клиентам на основе SOAP.
Конечная точка ~/service.svc/http позволяет клиентам получать доступ к службе с использованием привязки HTTP.
Конечная точка ~/service.svc/soap позволяет клиентам получать доступ к службе с использованием привязки протокола SOAP.
Конечная точка HTTP настроена с помощью стандартной конечной <webHttp
> точки, для которой helpEnabled
задано значение .true
В результате этого служба предоставляет справочную страницу на основе XHTML по адресу ~/service.svc/http/help, которую клиенты на основе HTTP могут использовать для доступа к службе.
Клиентский проект демонстрирует доступ к службе с помощью прокси-сервера SOAP (созданного с помощью добавления ссылки на службу) и доступа к службе с помощью WebClient.
Образец состоит из службы, размещенной на веб-сервере, и консольного приложения. Во время выполнения консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.
Выполнение образца
Откройте решение для образца «SOAP and HTTP Endpoints».
Нажмите клавиши CTRL+SHIFT+B , чтобы создать решение.
Если он еще не открыт, нажмите клавиши CTRL+W, S, чтобы открыть окно Обозреватель решений.
В окне Обозреватель решений щелкните правой кнопкой мыши проект службы и поместите курсор на пункт контекстного меню «Отладка«, чтобы появилось контекстное меню «Пуск нового экземпляра«. Нажмите кнопку «Запустить новый экземпляр«. Запускается сервер разработки ASP.NET, на котором размещается служба.
В окнах Обозреватель решений щелкните правой кнопкой мыши проект клиента и поместите курсор на пункт контекстного меню
Нажмите кнопку «Запустить новый экземпляр«.
На клиенте открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы. HTML-страницу справки можно просмотреть в любой момент времени, введя URI этой страницы в браузере.
Во время работы образца клиент записывает состояние текущего действия.
Чтобы завершить клиентское консольное приложение, нажмите любую клавишу.
Чтобы прекратить отладку службы, нажмите клавиши SHIFT+F5.
В области уведомлений Windows щелкните правой кнопкой мыши значок сервера разработки ASP.NET и выберите пункт «Остановить » в контекстном меню.
SOAP против HTTP — 9 самых удивительных сравнений, которые вы должны знать
- Разница между SOAP и HTTP
SOAP изначально был определен как S-Simple O-Object A-Access P-протокол. Это спецификация протокола, которая используется для обмена структурированной информацией. Он используется при реализации веб-сервисов в компьютерных сетях. SOAP для своего формата сообщений опирается на набор XML-информации, а иногда и на другие протоколы прикладного уровня, такие как протокол передачи гипертекста (HTTP) или простой протокол передачи почты (SMTP). Он используется в основном для согласования и передачи сообщений. SOAP формирует базовый уровень стека протоколов веб-сервисов. HTTP или протокол передачи гипертекста (HTTP) — это прикладной протокол, который используется для распределенных, совместных и гипермедиа информационных систем. HTTP широко рассматривается как основа передачи данных для Всемирной паутины (WWW). Гипертекст — это структурированный текст, который использует логические или гиперссылки между узлами, содержащими текст. HTTP — это протокол для обмена или передачи гипертекста. Разработка стандартов HTTP при его внедрении координировалась Инженерной рабочей группой по Интернету и консорциумом World Wide Web, также называемым W3C.
Сравнение лицом к лицу между SOAP и HTTP (инфографика)
Ниже приведены первые 9 различий между SOAP и HTTP.
Ключевые различия между SOAP и HTTP
Оба SOAP против HTTP являются популярным выбором на рынке; давайте обсудим некоторые основные различия между SOAP и HTTP
- Пользователи могут обслуживать любой тип контента по HTTP, например HTML, звук, изображения, видео и т. Д. SOAP — это кодировка сообщений на основе XML, поскольку мы уже знаем, что обычно они отправляются по HTTP, но могут передаваться по SMTP или даже Протоколы типа FTP также, хотя использование такой системы в производственной среде редко.
- HTTP расположен поверх TCP / IP, и вот так SOAP расположен поверх HTTP. Мы можем представить слой поверх слоев.
- Если посмотреть на SOAP-запрос, мы увидим оба уровня, слой заголовков HTTP будет наверху, за которым следует SOAP-сообщение рядом с ним.
- SOAP обычно имеет дело с независимым от платформы форматом данных (например, XML) для запроса и получения данных с сервера приложений.
- HTTP обрабатывает протокол сетевого уровня.
- Интуитивная аналогия, чтобы понять разницу, была бы как ниже:
МЫЛО как человек, который упаковывает упаковочную коробку.
HTTP как средство доставки, которое доставляет посылку. - Протокол HTTP состоит из двух элементов: заголовок HTTP и тело HTTP. когда тело HTTP состоит только из чистого XML-документа и ничто иное, оно называется простым HTTP, однако в случае формата SOAP тело HTTP содержит заголовок SOAP в дополнение к телу мыла, которое в совокупности известно как конверт SOAP, и такой конверт также поддерживает вложения,
- HTTP URL: Пример http URL приведен ниже.
HTTP: // хост: порт / а / XI / adapter_plain обслуживание = BS_A & namepsace = http_test и интерфейс = SI_A
- URL-адрес SOAP: пример URL-адреса SOAP приведен ниже
HTTP: // хост: порт / XISOAPAdapter / MessageServlet канал = участник: сервис: канал
- Сообщение SOAP обычно будет помещено в конверт с мылом.
HTTP не действует как адаптер в движке адаптера, но мыло на самом деле является адаптером, т. Е. HTTP не требует канала связи для своего общения, но SOAP требует этого. Пользователи могут отправлять мыльные сообщения с помощью клиента SOAP.
- Когда пользователю необходимо отправить свои данные в XI из веб-службы, используется SOAP-адаптер пользователя.
Пример: как я могу использовать SOAP Sender Adapter без использования таких инструментов, как XML Spy и т. Д.
- XML SPy чаще всего используется в качестве инструмента TEST, когда пользователи отправляют информацию SOAP в XI. Однако для фактической отправки данных пользователю необходимо сначала настроить веб-службу, а затем создать сообщение запроса SOAP, а после этого опубликовать данные.
- Адаптер отправителя SOAP — это извлечение сообщения XML из всего сообщения конверта SOAP.
Пользователи могут достичь того же самого, используя HTTP-адаптер и подходящее отображение. Адаптер HTTP более эффективен и стабилен по сравнению с SOAP, поскольку в нем используется только ABAP-часть WAS, также называемая собственным адаптером.
Сравнительная таблица SOAP и HTTP
Ниже приведено 9 лучших сравнений между SOAP и HTTP.
МЫЛО | HTTP |
Он поддерживает веб-сокет или WS-Addressing, WS-Security и заголовки SOAP. | Потоки HTTP-сообщений никогда не используют веб-сокет или WS-Addressing, WS-Security, SwA или MTOM. |
Обычный SOAP имеет формат логического дерева, который не зависит от формата битового потока. | HTTP — это то, что использует разные стандарты, такие как REST или XML-RPC. |
Проверка времени выполнения по WSDL разрешена в SOAP. | Недоступно в HTTP. |
Автоматическая обработка SOAP с вложениями (SwA) возможна здесь.![]() | В потоках HTTP-сообщений, которые взаимодействуют только с веб-сервисами. |
Автоматическая обработка Механизма Оптимизации Передачи Сообщений (MTOM) также возможна. | Узлы HTTP также могут обрабатывать сообщения SwA, но они должны использовать домен сообщений MIME, а процесс проектирования должен выполняться для явной обработки вложений. Должна быть написана пользовательская логика для извлечения и анализа SOAP. |
SOAP — это протокол для обмена сообщениями на основе XML, и SOAP должен использовать HTTP для передачи этих сообщений, как уже объяснено в разделе введения. | С другой стороны, HTTP — это протокол связи, который транспортирует сообщения по сети, а не как SOAP. |
SOAP обозначает простой протокол доступа к объектам, как уже упоминалось. это протокол, который используется для доступа к веб-сервисам и основан на структуре XML. | Http или Hypertext Transfer Protocol — это протокол передачи данных. Он также называется протоколом без сохранения состояния, потому что каждая команда выполняется независимо в HTTP.![]() |
SOAP предоставляет механизм для связи между приложениями, работающими в разных операционных системах, с разными технологиями и большинством языков программирования времени. | Трудно реализовать веб-сайты, использующие HTTP, который разумно реагирует на вводимые пользователем данные. |
SOAP — это просто используемый протокол обмена данными, мыльное сообщение внутри тела HTTP в протоколе. | Вышеупомянутый недостаток HTTP устраняется во многих новых технологиях, таких как ActiveX, Java, JavaScript и т. Д. |
Вывод — SOAP против HTTP
Сообщения SOAP чаще всего форматируются в XML и обычно отправляются с использованием HTTP. SOAP использует WSDL-метод связи между поставщиком и потребителем, с другой стороны, REST в большинстве случаев просто использует XML или JSON для отправки и получения данных. SOAP сначала создает протокол на основе XML, а затем использует поверх него HTTP или иногда TCP / IP. Таким образом, в этой статье SOAP против HTTP объясняются и разрабатываются важные различия между SOAP и HTTP.
Рекомендуемые статьи
Это было руководство для ведущих компаний SOAP против HTTP. Здесь мы также обсудим различия между ключами SOAP и HTTP с помощью инфографики и таблицы сравнения. Вы также можете взглянуть на следующие статьи, чтобы узнать больше.
- Ruby on Rails vs laravel-Сравнение
- Аналитик против младших сотрудников
- Различия Джира против Трелло
- СУБД против СУБД
Категория:
Разработка программного обеспечения
java — Ошибка инициализации приложения веб-службы SOAP с неподдерживаемым протоколом: https’
У меня есть приложение только для серверной части веб-службы SOAP, которое не запускается (развертывается) с 30 марта с ошибкой цитата рядом с https), никаких изменений в коде не было с года или около того, и ни один из других системных URL-адресов не настроен в коде приложения или файле свойств, кроме uri пространства имен xlmns в XSD. Я получаю эту ошибку во время развертывания приложения (инициализации) даже до тестирования любого веб-сервиса в приложении.
Я использую JDK 1.6.0.45 на сервере weblogic 10.3.6. (Извините, я знаю, что мне нужно перейти на более новую версию, я в конце концов доберусь туда, обещаю)
Полная трассировка стека, как показано ниже, я включил журналы отладки ssl во время запуска weblogic, но я не вижу никакой ошибки, которая могла бы передать отсутствует сертификат.
<5 апреля 2022 г. 14:31:49 IST> <Предупреждение><Определенный пользователем прослушиватель org.springframework.web.context.ContextLoaderListener failed: org.springframework.beans.factory.BeanCreationException : Ошибка при создании bean-компонента с именем «org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection#0»: не удалось вызвать метод инициализации; вложенным исключением является org.springframework.xml.xsd.commons.CommonsXsdSchemaException: схема [ресурс ServletContext [/WEB-INF/xsd/AcmeAppGateway. xsd]] не может быть загружена; вложенным исключением является org.apache.ws.commons.schema.XmlSchemaException: неподдерживаемый протокол: https'. org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем «org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection#0»: не удалось вызвать метод инициализации; вложенным исключением является org.springframework.xml.xsd.commons.CommonsXsdSchemaException: схема [ресурс ServletContext [/WEB-INF/xsd/AcmeAppGateway.xsd]] не может быть загружена; вложенным исключением является org.apache.ws.commons.schema.XmlSchemaException: неподдерживаемый протокол: https' в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.
createBean(AbstractAutowireCapableBeanFactory.java:458) в org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) Усеченный. см. файл журнала для полной трассировки стека Вызвано: org.springframework.xml.xsd.commons.CommonsXsdSchemaException: схема [ресурс ServletContext [/WEB-INF/xsd/AcmeAppGateway.xsd]] не может быть загружена; вложенным исключением является org.apache.ws.commons.schema.XmlSchemaException: неподдерживаемый протокол: https' в org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection.afterPropertiesSet(CommonsXsdSchemaCollection.java:147) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.
initializeBean(AbstractAutowireCapableBeanFactory.java:1509) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) Усеченный. см. файл журнала для полной трассировки стека Вызвано: org.apache.ws.commons.schema.XmlSchemaException: неподдерживаемый протокол: https' в org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:710) на org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:706) на org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538) в org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1513) на org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658) Усеченный.
см. файл журнала для полной трассировки стека Вызвано: java.net.ProtocolException: неподдерживаемый протокол: https' на weblogic.net.http.HttpClient.openServer(HttpClient.java:384) на weblogic.net.http.HttpClient.New(HttpClient.java:252) на weblogic.net.http.HttpURLConnection.connect(HttpURLConnection.java:213) на weblogic.net.http.HttpURLConnection.followRedirect(HttpURLConnection.java:698) на weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:464) Усеченный. см. файл журнала для полной трассировки стека >
xsd, упомянутый в ошибке, имеет URI xlmns, как показано ниже, возможно ли, что они вызывают проблему из-за более высокой версии TLS (TLS 1.2, который не поддерживается в JDK 1.6)?
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
В этом xsd не настроен другой URL-адрес, кроме указанного выше. Я столкнулся с другой похожей ошибкой здесь, но это было из-за отсутствия сертификата. Очень признателен, если кто-нибудь может указать мне в правильном направлении.
- java
- мыло
- https
- weblogic
- tls1.2
2
Хорошо, наконец, после проб и ошибок выяснил, в чем проблема.
В нашем проекте SOAP WS мы установили schemaLocation, как показано ниже:
Я полагаю*, что этот сайт schemas.xmlsoap.org включил TLS1.2 30 марта (* я открыт для других причин, но это мое предположение на данный момент), поэтому наше приложение работало нормально до этого дня и начало сбоить после этой даты. Я проверил конфигурацию TLS этого URL-адреса на SSLABS, который сказал, что все, что ниже TLS1.2, отключено для этого сайта.
Поскольку я все еще использую JDK 1.6, нет возможности подключиться к этому сайту, который использует более высокий TLS, чем тот, который поддерживается 1.6, поэтому инициализация приложения не удалась при установлении соединения с этим URL-адресом. Решение состояло в том, чтобы вручную загрузить xml-содержимое мыльной кодировки из URL-адреса в xml-файл и поместить этот файл в папку проекта, а затем указать этот файл в XSD для schemaLocation, как показано ниже. Это помогло!!
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Разница между SOAP и HTTP
- Написание интервью
- Разница между SOAP и WSDL
- Разница между SOAP и HTTP
- Функции потоков в C/C++
- Многопоточность в C
- Многопоточность в C++
- Программирование сокетов в C/C++
- Программирование сокетов в C/C++: работа с несколькими клиентами на сервере без многопоточности
- Реализация TCP Server-Client в C
- UDP Server-Client реализация на C++
- Клиентский сервер UDP с использованием подключения | Реализация C
- Программа C для передачи файлов с использованием UDP
- Протокол передачи файлов (FTP) на прикладном уровне
- В чем разница между HTTP, FTP и SMTP?
- Режим асинхронной передачи (ATM) в компьютерной сети
- Что такое локальный хост?
- Протокол динамической конфигурации хоста (DHCP)
- Агент DHCP-ретрансляции в компьютерной сети
- Как DHCP-сервер динамически назначает IP-адрес хосту?
- Уровни модели OSI
- Модель TCP/IP
- Протоколы на прикладном уровне
- Простой протокол передачи почты (SMTP)
- Система доменных имен (DNS) на прикладном уровне
- Почему DNS использует UDP, а не TCP?
- Разрешение адресов в DNS (сервер доменных имен)
- Написать опыт интервью
- Основы компьютерных сетей
- Шифр Цезаря в криптографии
- Сетевые устройства (концентратор, повторитель, мост, коммутатор, маршрутизатор, шлюзы) и Brouter)
Написание статьи
Написать статью
Улучшить статью
Сохранить статью
- Последнее обновление: 06 июл, 2022
Улучшить статью
Сохранить статью
1. Простой протокол доступа к объектам (SOAP) : Простой протокол доступа к объектам (SOAP) — это сетевой протокол для обмена структурированными данными между узлами. Он использует формат XML для передачи сообщений. Он работает поверх протоколов прикладного уровня, таких как HTML и SMTP, для нотаций и передачи. SOAP позволяет процессам взаимодействовать между платформами, языками и операционными системами, поскольку такие протоколы, как HTTP, уже установлены на всех платформах.
2. HTTP : HTTP — это протокол прикладного уровня, созданный Тимом Бернерсом Ли в ЦЕРН в 1989 году. В настоящее время он используется для большей части передачи данных в Интернете. Это основа передачи данных с использованием гипертекстовых файлов во всемирной паутине. Этот протокол отвечает за действия, которые должен предпринять сервер при отправке информации по сети. Когда URL-адрес вводится в браузер, этот протокол отправляет HTTP-запрос на сервер, а затем HTTP-ответ отправляется обратно в браузер.
Разница между SOAP и HTTP:
Серийный номер. | SOAP | HTTP |
---|---|---|
1. | SOAP означает простой протокол доступа к объектам. | HTTP означает протокол передачи гипертекста. |
2. | На основе XML используется для отправки и получения сообщений. | Используется для передачи информации через Интернет. |
3. | Поддерживает веб-сокет или WS-адресацию, WS-Security, SwA. | Не поддерживает веб-сокет или WS-адресацию, WS-Security, SwA. |
4. | SOAP работает через HTTP. | HTTP работает через TCP и IP. |
5. | Поддерживает проверку во время выполнения по WSDL. | Не поддерживает проверку во время выполнения по WSDL. |
6. | Поддерживает автоматическую обработку механизма оптимизации передачи сообщений (MTOM). | Он также поддерживает MTOM, но должен использовать домен сообщений MIME, а процесс проектирования должен выполняться для явной обработки вложений.![]() |