Веб -сервисы могут конвертировать приложения в веб -приложения.
Используя веб -сервисы, ваше приложение может публиковать информацию в мир или предоставить функцию.
Веб -сервисы могут использоваться другими приложениями.
Веб -сервис позволяет серверу Win 2K вашего отдела бухгалтерского учета подключаться к серверу Unix от ИТ -поставщика.
Основная платформа веб -служб - XML+HTTP.
Веб -сервисы используют XML для кодирования данных и используйте SOAP для передачи данных.
Что такое веб -сервис
Webservice, как следует из названия, является веб-сервисом. Он использует метод Web (HTTP) для получения и ответа на некоторые запросы от внешних систем. Это включает удаленные вызовы.
1: С точки зрения рабочего режима Webservice, он не отличается от обычных веб -программ (таких как ASP, JSP и т. Д.). Это программы, основанные на протоколе передачи HTTP.
2: данные, используемые Webservice, основаны на формате XML. В настоящее время стандартный веб -сервис в основном использует протокол SOAP в формате данных. Протокол SOAP на самом деле является текстовым протоколом, основанным на спецификациях кодирования XML.
Техническая поддержка веб -сервиса
Платформа веб -службы требует набора протоколов, чтобы обеспечить создание распределенных приложений. Любая платформа имеет свой метод представления данных и систему типов. Для достижения совместимости платформа веб -службы должна предоставить систему стандартного типа для передачи различных типов систем на разных платформах, языках программирования и моделях компонентов. В настоящее время эти соглашения включают в себя:
XML и XSD
Расширимый язык разметки XML является основным форматом представления данных на платформе веб -службы. Помимо того, что его легко строить и анализировать, основное преимущество XML заключается в том, что он не имеет ничего общего с платформой и поставщиком. XML создан Всемирной паутиной Ассоциацией (W3C). XML SchemaxSD, разработанный W3C, определяет стандартный набор типов данных и дает язык для расширения этого набора типов данных.
Платформа веб -службы использует XSD в качестве системы типа данных. Когда вы строите веб -сервис на языке, таком как VB. NET или C#, чтобы соответствовать стандартам веб -службы, все типы данных, которые вы используете, должны быть преобразованы в тип XSD. Если вы хотите, чтобы это было передано между разными платформами и различным программным обеспечением, вам также нужно что -то обернуть. Такая вещь - это протокол, такой как мыло.
МЫЛО
SOAP - это простой протокал доступа к объекту, который является легким протоколом для обмена информацией о кодировании XML. Он имеет три основных аспекта: XML-Envelope определяет структуру для описания информационного содержания и того, как обрабатывать контент, кодирует объекты программы в объекты XML и выполняет соглашение о удаленных вызовах процедуры (RPC). Мыло может работать по любому другому транспортному протоколу. Например, вы можете использовать SMTP, протокол электронной почты в Интернете для доставки сообщений SOAP, что очень заманчиво. Заголовки различаются между транспортными слоями, но полезная нагрузка XML остается прежней.
Веб-сервис надеется достичь возможности различных систем звонить друг другу в «программном диалоге», нарушая несовместимое состояние между программными приложениями, веб-сайтами и различными устройствами и достижением цели «сезонной интеграции на основе Интернета».
WSDL
Описание веб-службы Language WSDL-это формальный документ описания, предоставляемый машиночитываемым способом и основан на XML. Он используется для описания веб -службы и его функций, параметров и возвратных значений. Поскольку он основан на XML, WSDL является как машино читаемым, так и читаемым человеком.
Удди
Цель UDDI-установить стандарты для электронной коммерции; UDDI-это набор веб-распределенных стандартов реализации центра регистрации информации и спецификаций, предоставляемых для веб-служб, а также включает набор стандартов реализации, которые позволяют предприятиям регистрировать свои собственные веб-сервисы, чтобы другие предприятия могли обнаружить протоколы доступа. Вызов RPC и обмен сообщениями
Сам веб -служба фактически реализует связь между приложениями. Теперь у нас есть два способа общения для приложений: RPC удаленная процедура вызов и доставка сообщений. При использовании RPC концепция клиента состоит в том, чтобы вызвать удаленную процедуру на сервере. Обычным способом является создание экземпляра удаленного объекта и назвать его методы и свойства. Система RPC пытается достичь своего рода прозрачности местоположения: сервер раскрывает интерфейсы удаленных объектов, а клиент похож на интерфейсы этих объектов, используемых локально, что скрывает базовую информацию, и клиент не должен знать, на какую машину находится объект.
Как опубликовать веб -сервис?
1. Используйте JDK1.6.0_21 позже, чтобы опубликовать услугу веб -сервиса. И просмотреть его документ WSDL через адресную строку.
2. Сгенерируйте клиент -код через WSIMPORT, вызовите и просмотрите результаты запуска. (Узнайте, как называть наше внимание).
Следует отметить, что когда JDK1.6._07 выпускается после версии JDK, код должен быть полностью аннотирован. Если вы используете JDK1.6.0_21, потому что он уже содержит WS2.1, вы можете добавить только аннотации @WebService в класс.
Вот два разных кода:
WS выпущен на версии jdk1.6.0_13:
пакет com.itcast; Импорт javax.jws.webmethod; Импорт javax.jws.webservice; импортировать javax.jws.soap.soapbinding; импортировать javax.jws.soap.soapbinding.style; Импорт javax.xml.ws.endpoint; @Webservice (targetnamespace = "http: // loalhost: 9999/helloworld") @soapbinding (style = style.rpc) // Только поддержка стиля сообщений RPC открытый класс helloworld {// Следующий аннотирован @webmethod, метод @webmethod public string sayshello () {help 'help' hall 'rate' hall 'rate "; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999/helloworld", new helloworld ()); }} 2: Ниже приведен код веб -сервиса, выпущенный на JDK1.6.0_24:
пакет com.itcast; Импорт javax.jws.webservice; Импорт javax.xml.ws.endpoint; @Webservice // Обратите внимание, что есть только эта аннотация, эта аннотация также необходима. Стиль сообщений SOAP по умолчанию: Document Public Class Helloworld {public String sayshello () {return "helloworld"; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999/helloworld", new helloworld ()); }} Первая служба веб -сервиса
пакет com.itcast; Импорт javax.jws.webservice; Импорт javax.xml.ws.endpoint; / *** Первое приложение для обслуживания веб -сервисов*/ // Аннотация, это указывает на то, что этот класс опубликован как веб -сервис @webservice public class helloworld {public String sayshello () {return "hello world"; } // В основном методе используйте конечную точку javax.xml.ws.endpoint, чтобы опубликовать приложение Public Static void main (string [] args) {endpoint.publish ("http://127.0.0.1:999/helloworld", new Helloworld ()); }}Описание кода: Все нестатические методы открытого класса Helloworld будут подвергаться внешнему виду.
Описание инструмента WSIMPORT:
WSIMPORT-это инструмент, который поставляется с JDK и может генерировать код вызова на стороне клиента на основе документа WSDL. Конечно, независимо от того, какой язык написан на веб-сервере на стороне сервера, код Java будет генерироваться на клиенте. Неважно, что написано на серверной стороне.
wsimport.exe находится в каталоге Java_Home/Bin.
Общие параметры:
• -d <Directory> - будет создан .class -файл. Параметры по умолчанию.
• -s <каталог> - файл .java будет сгенерирован.
• -p <Новое имя пакета, сгенерированное> -В, сгенерированный класс в указанном пакете.
(wsdlurl) - http: // server: port/service? WSDL, необходимые параметры
использовать:
1: Вы можете проверить свой текущий номер версии через Java версию. Если версия слишком низкая, вы можете установить более высокую версию JDK.
Или непосредственно скопируйте установленного каталога JDK на вашу машину, такой как D: /JDK1.6.0_24 Directory.
Потому что предыдущие переменные среды были установлены на предыдущую старую версию каталога JDK, а именно две переменные среды Java_home и Path.
Вы можете сбросить переменную среды на: java_home = d: /jdk1.6.0_24, path =%java_home%/bin,
После сброса переменных среды вы должны вновь открыть окно DOC (командная строка), чтобы вступить в силу.
Если вы не хотите изменять уже настроенные переменные среды, вы можете ввести следующую команду в окне командной строки, чтобы сделать JDK1.6.0_24 вступить в силу:
Установите PATH = D: /JDK1.6.0_24/bin;% PATH% (просто введите)
Затем проверьте, изменился ли номер версии JDK через Java версию.
2: Перейдите в относительно чистый каталог, я создал новое имя каталога на диске D под названием: WS и перейдите в этот каталог.
3: Включите свой веб -сервис.
4: Введите следующую команду:
Wsimport s. http://127.0.0.1:9999/helloworld?wsdl
Описание параметра: -s относится к компиляции файла исходного кода, а следующая (точка) относится к тому, чтобы поместить его на предыдущее место.
Последний http… относится к адресу получения руководства по инструкции WSDL.
5: В настоящее время будут сгенерированы файл .java и .class. (оба содержат исходное имя пакета). Скопируйте код в свой проект. (Только скопируйте файл Java)
6: В новом проекте новый класс (может быть расположен в любом пакете), вызовите код, сгенерированный выше, см. PPT на следующей странице.
7: Wsimport другие параметры, параметры, которые мы часто используем, --d, -s, -p
-Д <каталог> будет генерировать файлы .class.
Пример: Wsimport d. http://127.0.0.1:9999/helloworld?wsdl
-s <каталог> будет генерировать файл .java.
Пример: Wsimport s. http://127.0.0.1:9999/helloworld?wsdl
-p <имя пакета> изменить сгенерированный файл (.java или .class на указанное имя пакета)
Пример: wsimport -s. -p com.beijing.itcast http://127.0.0.1:9999/helloworld?wsdl
Для параметра -p обратите внимание на изменение имени пакета. Он помещает все сгенерированные классы под пакетом, указанным -p. (Демонстрация)
Следует отметить, что когда используется только параметр -p, он также будет использовать -d одновременно для компиляции в файл .class. Если параметр D записан или нет, он есть, и он никогда не уйдет.
Исходный код runmain.java заключается в следующем:
пакет com.leaf; Импорт com.itcast.helloworld; Импорт com.itcast.helloworldservice; /*** Вызовите удаленный код, вызывая сгенерированный класс*/public class runmain {public static void main (string [] args) {// возвращать интерфейс вызова из метода gethelloworldport of helloworldserice helloworld = new helloworldservice (). Gethellorldport (); String str = helloworld.sayhello (); // Выполнить систему вызовов.Разница между веб -сервисом и обычными веб -программами
1. Webservice использует только HTTP Post для передачи данных и не использует GET;
1) ContentType Post TTTP
(1) Приложение/X-WWW-FORM-URLENCODED
2) ContentType веб -сервиса
(2) Текст/XML SOAP1.1
(3) Приложение/SOAP+XML SOAP1.2
2. Webservice ограничен форматом передачи данных.
Данные, используемые Webservice, основаны на формате XML. В настоящее время стандартный веб -сервис в основном использует протокол SOAP в формате данных. Протокол SOAP на самом деле является текстовым протоколом, основанным на спецификациях кодирования XML.
Разница между веб -сервисом и веб -сервером:
Мы можем думать о Webservice как о приложении на веб -сервере; С другой стороны, веб -сервер является необходимым контейнером для времени выполнения веб -сервиса. Это их разница и связь.
Особенности веб -сервиса:
1. Webservice принимает запросы клиентов через HTTP Post
2. Протокол SOAP обычно используется между веб -сервисом и клиентом для передачи данных XML.
3. Он предназначен для кроссплатформенного или перекрестного языка.