Содержание
- 1 JAX-RS:
- 2 Джерси:
- 3 Шаг 1
- 4 Шаг 2
- 5 Шаг 3
- 6 Шаг 4
- 7 Шаг 5
- 8 Шаг 6
- 9 CtoFService.java
- 10 Шаг 7
- 11 FtoCService.java
- 12 Шаг 8
- 13 Шаг 9
- 14 Шаг 10
- 15 Полная структура проекта:
- 16 Вот зависимости пути сборки Java:
- 17 Все готово. Теперь давайте проверим ваш веб-сервис RESTful.
- 18 Примеры клиентов RESTFul:
- 19 Другой должен прочитать:
У вас есть один из следующих вопросов / вопросов?
- Написать 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 файл.
|
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.1 — SNAPSHOT < / версия >
< упаковка > война < / упаковка >
< 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 копия файла:
|
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 ?>
< web — app 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 >
< display — name > CrunchifyRESTJerseyExample < / display — name >
< добро пожаловать — файл — список >
< welcome — file > index . html < / welcome — file >
< welcome — file > index . htm < / welcome — file >
< welcome — file > index . jsp < / welcome — file >
< welcome — file > по умолчанию . html < / welcome — file >
< welcome — file > по умолчанию . htm < / welcome — file >
< welcome — file > по умолчанию . jsp < / welcome — file >
< / welcome — file — list >
< сервлет >
< servlet — name > Jersey Web Application < / servlet — name >
< сервлет — класс > ком . солнце. Джерси. spi . контейнер . сервлет. ServletContainer < / servlet — class >
< загрузка — при запуске > 1 < / загрузка — при запуске >
< / servlet >
< сервлет — отображение >
< servlet — name > Jersey Web Application < / servlet — name >
< url — шаблон > / crunchify / * < / url — шаблон >
< / servlet — mapping >
< / web — приложение >
|
Шаг 6
- Идти к
Java Resources - Нажмите на SRC
- Щелкните правой кнопкой мыши -> Новый -> Класс
- Пакет: com.crunchify.restjersey
- Имя: CтоФСервис
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
|
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 ) — > добавлять чистая установка — > Бежать
|
- За
point 3выше использованияthese screenshots: Maven Build , чистая установка . - Вы должны увидеть сообщение об успехе сборки .
Шаг 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:
- Как создать RESTful Java-клиент с использованием Apache HttpClient — пример
- Как создать RESTful Java-клиент с Java.Net.URL — пример
- Как создать клиент RESTful Java с клиентом Jersey — пример
Другой должен прочитать:
- CrunchifyJSONtoHTML.js — Конвертер сценариев JSON в HTML
- Как генерировать из памяти (OOM) в Java программно
- Как запустить несколько экземпляров Tomcat на одном сервере?
- Как прочитать объект JSON из файла в Java — Crunchify Tutorial
Возникли проблемы с запуском кода? Некоторые этапы сортировки:
Изначально я использовал 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
|
1
2
3
4
5
|
< зависимость >
< groupId > org . GlassFish. Джерси. core < / groupId >
< artifactId > джерси — сервер < / artifactId >
< версия > 2.27 < / версия >
< / зависимость >
|
0.00 (0%) 0 votes

























