Добро пожаловать в учебник по веб-сервисам Java . Здесь мы узнаем о веб-сервисах , полезных концепциях в веб-сервисах, а также о различных типах API, которые есть в Java для создания веб-сервисов.
Что такое веб-сервис
Проще говоря, сервисы, к которым можно получить доступ по сети, называются веб-сервисами. Так чем же он отличается от веб-приложения, это также сервисы, доступ к которым осуществляется по сети. Есть несколько атрибутов, которые проясняют эту разницу.
- Веб-приложения предназначены для пользователей и доступны в браузере в удобочитаемом формате, тогда как веб-сервисы предназначены для приложений для доступа к данным в формате XML, JSON и т. Д.
- Веб-приложения всегда используют протокол HTTP / HTTPS, тогда как традиционные веб-сервисы используют протокол SOAP. В последнее время набирает популярность REST, который является архитектурным стилем и почти всегда работает по протоколу HTTP / HTTPS.
- Веб-приложения не предназначены для повторного использования, в то время как это одно из преимуществ веб-сервисов. Один веб-сервис может использоваться различными приложениями.
- Веб-приложение может получить доступ к веб-службам для доступа к некоторым данным или для выполнения некоторых задач, веб-службы не могут получить доступ к веб-приложениям для получения некоторых данных.
- Веб-приложения способны поддерживать сеанс пользователя, веб-службы не сохраняют состояния.
Я надеюсь, что вышеупомянутые различия достаточно хороши, чтобы устранить путаницу с веб-приложениями и веб-сервисами. Оба понятия разные и предназначены для разных целей.
Типы веб-сервисов
Существует два типа веб-сервисов.
- SOAP: SOAP означает простой протокол доступа к объектам. SOAP - это основанный на XML протокол промышленного стандарта для проектирования и разработки веб-сервисов. Поскольку он основан на XML, он не зависит от платформы и языка. Таким образом, наш сервер может быть основан на JAVA, а клиент может быть на .NET, PHP и т. Д. И наоборот.
- REST: REST - это архитектурный стиль для разработки веб-сервисов. В последнее время он становится популярным, потому что у него небольшая кривая обучения по сравнению с SOAP. Ресурсы являются основными понятиями веб-служб Restful, и они уникально идентифицируются по их URI.
Java предоставляет собственный API для создания как SOAP, так и веб-сервисов REST.
- JAX-WS: JAX-WS означает Java API для веб-служб XML. JAX-WS - это API-интерфейс на основе XML для создания сервера веб-служб и клиентского приложения.
- JAX-RS: Java API для веб-служб RESTful (JAX-RS) - это Java API для создания веб-служб REST. JAX-RS использует аннотации для упрощения разработки и развертывания веб-сервисов.
Оба эти API являются частью стандартной установки JDK, поэтому нам не нужно добавлять какие-либо jar-файлы для работы с ними. Оба эти API очень интенсивно используют аннотации.
Давайте создадим очень простое приложение Hello World JAX-WS.
TestService.java
копия
пакет com.journaldev.jaxws.service; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.xml.ws.Endpoint; @WebService @SOAPBinding (style = SOAPBinding.Style.DOCUMENT) открытый класс TestService {@WebMethod public String sayHello (String msg) {return "Hello" + msg; } public static void main (String [] args) {Endpoint.publish ("http: // localhost: 8888 / testWS", new TestService ()); }}
Вот и все. Просто запустите это приложение, и наш веб-сервис Hello World JAX-WS SOAP будет опубликован. На следующем рисунке показан вызов этой веб-службы JAX-WS через пользовательский интерфейс SOAP.
Вот и все для очень основного руководства по веб-сервису JAX-WS. Ниже приведены некоторые статьи, которые вы должны прочитать, чтобы лучше понять веб-сервисы SOAP и JAX-WS.
- Учебник по JAX-WS
- Развертывание веб-службы JAX-WS на Tomcat
- Пример веб-службы SOAP с использованием Eclipse и Apache Axis
- Учебник по веб-сервисам Apache Axis 2
Джерси является эталонной реализацией API JAX-RS, он не является частью стандартного JDK, и мы должны включить все необходимые банки. Лучший способ - использовать сборку Maven, поэтому создайте простой динамический веб-проект, а затем преобразуйте его в Maven в Eclipse.
Вот последний файл pom.xml, имеющий необходимые зависимости.
копия
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http: / /maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </ modelVersion> <groupId> JAX-RS- HelloWorld </ groupId> <artifactId> JAX-RS-HelloWorld </ artifactId> <версия> 0.0.1-SNAPSHOT </ версия> <packaging> война </ packaging> <зависимости> <зависимости>> <groupId> com.sun. jersey </ groupId> <artifactId> jersey-server </ artifactId> <версия> 1.19 </ version> </ dependency> <зависимость> <groupId> com.sun.jersey </ groupId> <artifactId> джерси-сервлет </ artifactId> <версия> 1.19 </ version> </ dependency> </ dependencies> <build> <sourceDirectory> src </ sourceDirectory> <plugins> <plugin> <artifactId> maven-war-plugin </ artifactId> <версия> 2.6 </ version> <configuration> <warSourceDirectory> WebContent </ warSourceDirectory> <failOnMissingWebXml> false </ failOnMissingWebXml> </ configuration> </ plugin> <plugin> <artifactId> maven-compiler-plugin </ artifactId> <версия > 3.3 </ version> <конфигурация> <source> 1.7 </ source> <target> 1.7 </ target> </ configuration> </ plugin> </ plugins> </ build> </ project>
Теперь добавьте сервлет Jersey в наш дескриптор развертывания web.xml в качестве фронт-контроллера.
копия
<? xml version = "1.0" encoding = "UTF-8"?> <веб-приложение xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http: // xmlns .jcp.org / xml / ns / javaee "xsi: schemaLocation =" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1 .xsd "id =" WebApp_ID "version =" 3.1 "> <display-name> JAX-RS-HelloWorld </ display-name> <servlet> <servlet-name> Служба REST Джерси </ servlet-name> <servlet- class> com.sun.jersey.spi.container.servlet.ServletContainer </ servlet-class> <init-param> <param-name> com.sun.jersey.config.property.packages </ param-name> <param -value> com.journaldev.jaxrs.service </ param-value> </ init-param> <загрузка при запуске> 1 </ загрузка при запуске> </ servlet> <servlet-mapping> <servlet- name> Служба REST Джерси </ servlet-name> <url-pattern> / * </ url-pattern> </ servlet-mapping> </ web-app>
Выше двух шагов требуется для начальной настройки, ниже наш класс обслуживания Hello World JAX-RS.
копия
пакет com.journaldev.jaxrs.service; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @Path ("/ test") открытый класс TestService {@GET @Path ("/ hello / {msg}") public String sayHello (@PathParam (value = "msg") String msg) {return "Hello" + msg; }}
Просто экспортируйте его как WAR-файл и затем откройте его в браузере, как показано на рисунке ниже.
Вы можете изменить последнюю часть URL, и возвращаемое сообщение изменится соответственно.
Вы можете видеть, как легко было создать веб-сервис RESTful с помощью API JAX-RS. Однако это еще не все, следуйте статьям ниже, чтобы узнать больше.
- Restful Web Services
- RESTEasy Tutorial
- Джерси Учебник
Это все, что нужно для быстрого ознакомления с веб-сервисами java. Наконец, если вы готовитесь к собеседованию, просмотрите Интервью по веб-сервисам ,
Рекомендации: JAX-WS Oracle Page , JAX-RS Oracle Страница
О Панкадж
Я люблю технологии с открытым исходным кодом и пишу о своем опыте, связанном с ними. Вы можете связаться со мной напрямую на facebook , щебет , а также YouTube ,
Encoding = "UTF-8"?