Домой Без рубрики Создание службы RESTful на Java с использованием JAX-RS и Джерси (от Цельсия...

Создание службы RESTful на Java с использованием JAX-RS и Джерси (от Цельсия до Фаренгейта и от Фаренгейта до Цельсия)

988
0

У вас есть один из следующих вопросов / вопросов?

  • Написать Java-REST сервис для конвертации Фаренгейта в Цельсий и Цельсия в Фаренгейт
  • ОТДЫХ с Java (JAX-RS) с использованием Джерси
  • Преобразование из Фаренгейта в метод Цельсия в Java
  • Помощь в выполнении домашних заданий с преобразованием степеней (CtoF, FtoC)
  • Java API для веб-сервисов RESTful
  • веб-сервисы — Какой лучший Java REST API?
  • REST API для Java?
  • Ctof и Ftoc учебник. ctof и ftoc Java Tutorial
  • Создание веб-сервисов RESTful с технологией Java
  • RESTful Web API Framework для Java

RESTful Service Передача состояния представительства (REST) получила широкое признание в Интернете как более простая альтернатива веб-службам на основе языка описания SOAP и WSDL .

REST определяет набор архитектурных принципов, с помощью которых вы можете создавать веб-сервисы, ориентированные на ресурсы системы , включая способ адресации и передачи состояний ресурсов по HTTP широким кругом клиентов, написанных на разных языках. Если судить по количеству веб-сервисов, которые его используют, REST появился только в последние несколько лет как доминирующая модель проектирования веб-сервисов. Фактически, REST оказал такое большое влияние на Web, что в основном заменил дизайн интерфейсов на основе SOAP и WSDL, потому что это значительно более простой стиль использования.

RESTFul Vs. Учебник по SOAP .

JAX-RS:

Java API для веб-служб RESTful (JAX-RS) — это набор API-интерфейсов для службы REST разработчика. JAX-RS является частью Java EE6 и позволяет разработчикам легко разрабатывать веб-приложения REST.

Джерси:

Джерси является открытым исходным кодом, производство качества, JAX-RS (JSR 311) Reference Implementation для создания веб — служб RESTful. Но это также больше, чем эталонная реализация. Джерси предоставляет API, чтобы разработчики могли расширять Джерси в соответствии со своими потребностями

Давайте начнем строить просто RESTful API с нижеследующими шагами:

Шаг 1

В Eclipse => File => New => Динамический веб-проект. Назовите это как « CrunchifyRESTJerseyExample «.

Убедитесь, что вы установили:

  • Целевая среда выполнения: Apache Tomcat v9.0
  • Динамическая версия веб-модуля: 4.0

Шаг 2

Если ты не видишь web.xml (дескриптор развертывания), затем выполните следующие действия . ИЛИ ЖЕ

  • Щелкните правой кнопкой мыши на проекте
  • Выбрать Java EE Tools
  • Нажмите на Generate Deployment Descriptor Stub

Это создаст web.xml файл под /WebContent/WEB-INF/ папка.

Шаг 3

Теперь преобразовать проект в Maven Project чтобы мы могли добавить необходимые. JAR-файлы как зависимости.

шаги:

  • Щелкните правой кнопкой мыши на проекте
  • Нажмите на Configure
  • Выберите опцию Convert to Maven Project ,

Просто нажмите на Finish button без внесения каких-либо изменений.

Шаг 4

открыто pom.xml файл и добавить ниже зависимости.

  • asm.jar
  • Джерси-bundle.jar
  • json.jar
  • Джерси-server.jar

Вот мой pom.xml файл.

pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
< 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 > CrunchifyRESTJerseyExample < / groupId >
< artifactId > CrunchifyRESTJerseyExample < / artifactId >
< версия > 0.0.1SNAPSHOT < / версия >
< упаковка > война < / упаковка >
< build >
< sourceDirectory > src < / sourceDirectory >
< плагины >
< плагин >
< artifactId > mavenкомпиляторплагин < / artifactId >
< версия > 3.7.0 < / версия >
< конфигурация >
< source > 1.7 < / source >
< target > 1.7 < / target >
< / configuration >
< / plugin >
< / plugins >
< / build >
< зависимости >
< зависимость >
< groupId > asm < / groupId >
< artifactId > asm < / artifactId >
< версия > 3.3.1 < / версия >
< / зависимость >
< зависимость >
< groupId > ком . солнце. Джерси < / groupId >
< artifactId > джерсикомплект < / artifactId >
< версия > 1.19.4 < / версия >
< / зависимость >
< зависимость >
< groupId > org . JSON идентификатор_группы>
< artifactId > json < / artifactId >
< версия > 20170516 < / версия >
< / зависимость >
< зависимость >
< groupId > ком . солнце. Джерси < / groupId >
< artifactId > джерсисервер < / artifactId >
< версия > 1.19.4 < / версия >
< / зависимость >
< зависимость >
< groupId > ком . солнце. Джерси < / groupId >
< artifactId > джерсиядро < / artifactId >
< версия > 1.19.4 < / версия >
< / зависимость >
< / зависимости >
< / project >

Шаг 5

Обновите ваш файл web.xml с этим. Вот мой web.xml копия файла:

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
xml version = 1.0 encoding = UTF-8 ?>
< webapp xmlns : xsi = http://www.w3.org/2001/XMLSchema-instance
xmlns = http://java.sun.com/xml/ns/javaee xmlns : web = http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
xsi : schemaLocation = http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
версия = 3.0 >
< displayname > CrunchifyRESTJerseyExample < / displayname >
< добро пожаловатьфайлсписок >
< welcomefile > index . html < / welcomefile >
< welcomefile > index . htm < / welcomefile >
< welcomefile > index . jsp < / welcomefile >
< welcomefile > по умолчанию . html < / welcomefile >
< welcomefile > по умолчанию . htm < / welcomefile >
< welcomefile > по умолчанию . jsp < / welcomefile >
< / welcomefilelist >
< сервлет >
< servletname > Jersey Web Application < / servletname >
< сервлеткласс > ком . солнце. Джерси. spi . контейнер . сервлет. ServletContainer < / servletclass >
< загрузкапри запуске > 1 < / загрузкапри запуске >
< / servlet >
< сервлетотображение >
< servletname > Jersey Web Application < / servletname >
< urlшаблон > / crunchify / * < / urlшаблон >
< / servletmapping >
< / webприложение >

Шаг 6

  • Идти к Java Resources
  • Нажмите на SRC
  • Щелкните правой кнопкой мыши -> Новый -> Класс
  • Пакет: com.crunchify.restjersey
  • Имя: CтоФСервис

CtoFService.java

CtoFService.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
пакет ком . crunchify. рестжерси ;
/ **
* @author Crunchify.com
* * Описание: Эта программа конвертирует единицы из стоградусных в градусы Фаренгейта.
* Последнее обновление: 28.12.2008
* /
импорт javax . WS. RS. ПОЛУЧИТЬ ;
импорт javax . WS. RS. Путь ;
импорт javax . WS. RS. PathParam ;
импорт javax . WS. RS. Производит ;
@ Path ( / ctofservice )
общественности учебный класс CtoFService {
@ GET
@ Produces ( application / xml )
общественности строка convertCtoF ( ) {
двойной Фаренгейт ;
двойной цельсию знак равно 36,8 ;
Фаренгейт знак равно ( (по Цельсию * 9 ) / 5 ) + 32 ;
строка результат знак равно Вывод @Produces (/ application / xml / ): Вывод преобразователя / n / nC в F: / n / n + Фаренгейт ;
вернуть + <цельсию> + цельсию + + + результат + + ;
}
@ Path ( {c} )
@ GET
@ Produces ( application / xml )
общественности строка convertCtoFfromInput ( @ PathParam ( c ) двойной в ) {
двойной Фаренгейт ;
двойной цельсию знак равно с ;
Фаренгейт знак равно ( (по Цельсию * 9 ) / 5 ) + 32 ;
строка результат знак равно Вывод @Produces (/ application / xml / ): Вывод преобразователя / n / nC в F: / n / n + Фаренгейт ;
вернуть + <цельсию> + цельсию + + + результат + + ;
}
}

Шаг 7

Таким же образом создать FtoCService.java

FtoCService.java

FtoCService.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
пакет ком . crunchify. рестжерси ;
/ **
* @author Crunchify, LLC
* Описание: Эта программа конвертирует единицу измерения из Фаренгейта в Стоградусный.
*
* /
импорт javax . WS. RS. ПОЛУЧИТЬ ;
импорт javax . WS. RS. Путь ;
импорт javax . WS. RS. PathParam ;
импорт javax . WS. . RS Производит ;
импорт javax . WS. RS. ядро. Ответ ;
импорт орг . JSON . JSONException ;
импорт орг . JSON . JSONObject ;
@ Path ( / ftocservice )
общественности учебный класс FtoCService {
@ GET
@ Produces ( application / json )
общественности Ответ convertFtoC ( ) бросает JSONException {
JSONObject jsonObject знак равно новый JSONObject ( ) ;
двойной Фаренгейт знак равно 98,24 ;
двойной по Цельсию ;
цельсию знак равно (по Фаренгейту 32 ) * 5 / 9 ;
jsonObject . положить ( «F Value» , Фаренгейт ) ;
jsonObject . положить ( C Значение , по Цельсию ) ;
строка результат знак равно Вывод @Produces (/ application / json / ): Вывод преобразователя / n / nF в C: / n / n + jsonObject ;
вернуть Ответ . статус ( 200 ) . сущность ( результат ) . build ( ) ;
}
@ Path ( {f} )
@ GET
@ Produces ( application / json )
общественности Ответ convertFtoCfromInput ( @ PathParam ( f ) поплавок е ) бросает JSONException {
JSONObject jsonObject знак равно новый JSONObject ( ) ;
поплавок по Цельсию ;
цельсию знак равно ( ф 32 ) * 5 / 9 ;
jsonObject . положить ( «F Value» , е ) ;
jsonObject . положить ( C Значение , по Цельсию ) ;
строка результат знак равно Вывод @Produces (/ application / json / ): Вывод преобразователя / n / nF в C: / n / n + jsonObject ;
вернуть Ответ . статус ( 200 ) . сущность ( результат ) . build ( ) ;
}
}

Шаг 8

Теперь давайте очистим рабочее пространство Eclipse и создадим проект.

1
2
3
1. проект > чистый
2. проект > Щелкните правой кнопкой мыши > специалист > Обновить проект
3. проект > Щелкните правой кнопкой мыши > Run As . , > Maven Build ( опция 5 ) > добавлять чистая установка > Бежать

Шаг 9

Развернуть проект CrunchifyRESTJerseyExample на Tomcat. Вот подробные инструкции о том, как настроить Tomcat в Eclipse, если вы этого еще не сделали.

  • Перейти на вкладку сервера
  • Щелкните правой кнопкой мыши на сервере
  • Нажмите на Add and Remove Projects
  • Выберите проект с левой стороны и нажмите на Add
  • Нажмите готово

Шаг 10

  • Запустите Tomcat Server 9.0

Полная структура проекта:

Вот зависимости пути сборки Java:

Убедитесь, что вы используете JDK 1.8 для этого проекта. Запуск Java 9 — модули JAXB, JAX-WS, JAF, JTA, CORBA удалены, и вам необходимо добавить эти модули вручную в файл Maven pom.xml.

Все готово. Теперь давайте проверим ваш веб-сервис RESTful.

Тест 1: веб-сервис от Цельсия до Фаренгейта without параметр

HTTP: // локальный: 8080 / CrunchifyRESTJerseyExample / crunchify / ctofservice /

Тест 2: веб-сервис от Цельсия до Фаренгейта with параметр

Тест 3: Фаренгейт в Цельсий веб-сервис without параметр

Тест 4: Фаренгейт в Цельсий веб-сервис with параметр

Примеры клиентов RESTFul:

Другой должен прочитать:

Возникли проблемы с запуском кода? Некоторые этапы сортировки:

Изначально я использовал jersey-core зависимость. Но добавил jersey-server зависимость тоже, чтобы избежать ниже вопроса.

Если эта ошибка

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
ТЯЖЕЛАЯ : Servlet [ Джерси веб- приложение ] в веб- приложение [ / CrunchifyRESTJerseyExample ] бросил груз ( ) исключение
Java. яз. ClassNotFoundException : ком . солнце. Джерси. spi . контейнер . сервлет. ServletContainer
в орг . апач . каталина . погрузчик. WebappClassLoaderBase . loadClass ( WebappClassLoaderBase . java : 1328 )
в орг . апач . каталина . погрузчик. WebappClassLoaderBase . loadClass ( WebappClassLoaderBase . java : 1157 )
в орг . апач . каталина . ядро. DefaultInstanceManager . loadClass ( DefaultInstanceManager . java : 542 )
в орг . апач . каталина . ядро. DefaultInstanceManager . loadClassMaybePrivileged ( DefaultInstanceManager . java : 523 )
в орг . апач . каталина . ядро. DefaultInstanceManager . newInstance ( DefaultInstanceManager . java : 150 )
в орг . апач . каталина . ядро. StandardWrapper . loadServlet ( StandardWrapper . Java : 1032 )
в орг . апач . каталина . ядро. StandardWrapper . загрузить ( StandardWrapper . Java : 971 )
в орг . апач . каталина . ядро. СтандартКонтекст . loadOnStartup ( StandardContext . Java : 4829 )
в орг . апач . каталина . ядро. СтандартКонтекст . startInternal ( StandardContext . Java : 5143 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . ядро. ContainerBase $ StartChild . вызов ( ContainerBase . Java : 1432 )
в орг . апач . каталина . ядро. ContainerBase $ StartChild . вызов ( ContainerBase . Java : 1422 )
в Яве . база / Java . Util. одновременно. FutureTask . запустить ( FutureTask . Java : 264 )
в орг . апач . кот . Util. резьб. InlineExecutorService . выполнить ( InlineExecutorService . Java : 75 )
в Яве . база / Java . Util. одновременно. AbstractExecutorService . submit ( AbstractExecutorService . java : 140 )
в орг . апач . каталина . ядро. ContainerBase . startInternal ( ContainerBase . Java : 944 )
в орг . апач . каталина . ядро. Стандарт Хост . startInternal ( StandardHost . Java : 831 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . ядро. ContainerBase $ StartChild . вызов ( ContainerBase . Java : 1432 )
в орг . апач . каталина . ядро. ContainerBase $ StartChild . вызов ( ContainerBase . Java : 1422 )
в Яве . база / Java . Util. одновременно. FutureTask . запустить ( FutureTask . Java : 264 )
в орг . апач . кот . Util. резьб. InlineExecutorService . выполнить ( InlineExecutorService . Java : 75 )
в Яве . база / Java . Util. одновременно. AbstractExecutorService . submit ( AbstractExecutorService . java : 140 )
в орг . апач . каталина . ядро. ContainerBase . startInternal ( ContainerBase . Java : 944 )
в орг . апач . каталина . ядро. Стандартный двигатель . startInternal ( StandardEngine . Java : 261 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . ядро. СтандартСервис . startInternal ( StandardService . Java : 422 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . ядро. StandardServer . startInternal ( StandardServer . Java : 801 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . запуск . Каталина. начало ( Каталина . Ява : 695 )
в Яве . база / JDK . внутренний . отражать. NativeMethodAccessorImpl . invoke0 ( Native Метод )
в Яве . база / JDK . внутренний . отражать. NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . Java : 62 )
в Яве . база / JDK . внутренний . отражать. DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 43 )
в Яве . база / Java . яз. отражать. Метод. invoke ( Метод . Java : 566 )
в орг . апач . каталина . запуск . Бутстрап . начало ( Bootstrap . Java : 350 )
в орг . апач . каталина . запуск . Бутстрап . main ( Bootstrap . Java : 492 )

Если вы получаете ошибку выше, попробуйте добавить зависимость ниже maven в ваш файл pom.xml

pom.xml

1
2
3
4
5
< зависимость >
     < groupId > org . GlassFish. Джерси. core < / groupId >
     < artifactId > джерсисервер < / artifactId >
     < версия > 2.27 < / версия >
< / зависимость >
Создание службы RESTful на Java с использованием JAX-RS и Джерси (от Цельсия до Фаренгейта и от Фаренгейта до Цельсия)

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Лучшие расширения Google Chrome для поисковой оптимизации (SEO) [издание 2019 г.]

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь