Как определено веб-сервисом W3C, это программная система для поддержки взаимодействия компьютеров между компьютерами по сети.Более детально система использует сервис из другой программной системы.
Веб-сервисы имеют два основных класса:
- REST-совместимый
- произвольный веб-сервис
Для реализации веб-сервиса необходимо выбрать одну категорию на основе его / ее требования.У Java есть куча APIS для реализации веб-сервисов в обеих категориях.
Требования к реализации веб-сервиса:
- XML
- WSDL (язык описания веб-сервиса)
- Протокол SOAP и т. Д.
Основанный на REST немного прост в реализации по сравнению с другими категориями.Поэтому лучше начать с веб-сервисов жалоб REST.
Как работает веб-сервис:
WS работает как парадигма запрос-ответ, есть объект, который будет запрашиватьнекоторые услуги для его конкретного партнера, а именно сущность поставщика услуг.По запросу поставщик услуг ответит ответным сообщением.Таким образом, участвуют два сообщения, слушающих одно сообщение запроса (XML) и одно ответное сообщение (XML).Есть множество способов достичь этого.Подробности можно найти в архитектуре веб-службы
Начинающий может начать с JERSEY jsr311 стандартной эталонной реализации для создания веб-служб RESTful.
Пример (jerseyспецифично):
Шаг первый: создание корневых ресурсов
// The Java class will be hosted at the URI path "/helloworld"
@Path("/helloworld")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String getClichedMessage() {
return "Hello World";
}
}
Шаг второй: развертывание
public class Main {
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost/").port(8080).build();
}
public static final URI BASE_URI = getBaseURI();
protected static HttpServer startServer() throws IOException {
System.out.println("Starting ...");
ResourceConfig resourceConfig = new PackagesResourceConfig("com.sun.jersey.samples.helloworld.resources");
return GrizzlyServerFactory.createHttpServer(BASE_URI, resourceConfig);
}
public static void main(String[] args) throws IOException {
HttpServer httpServer = startServer();
System.out.println(String.format("Jersey app started with WADL available at "
+ "%sapplication.wadl\nTry out %shelloworld\nHit enter to stop it...",
BASE_URI, BASE_URI));
System.in.read();
httpServer.stop();
}
}
REST REFERENCE -Рой Т.Филдинг