Содержание
Некоторое время назад я написал учебное пособие « Как создать RESTful Service с Java с использованием JAX-RS и Jersey» . После всех подробных шагов вы должны развернуть свой проект на Tomcat Web Server и у тебя все должно быть хорошо. С этим руководством вы сможете просто создать сервис RESTFul за ~ 20 минут.
Но что делать в
~5 mins? Также иногда очень сложно настроить Tomcat для вашего веб-приложения.
Есть ряд причин:
- Вам может понадобиться скопировать двоичные файлы Tomcat в среду разработки .
- Если не все настройки настроены правильно, приложение Tomcat может не работать.
- Вы должны экспортировать свой проект как
.warпроект - Что если вы не хотите развертывать свое приложение на Tomcat и запускать простой .jar?
- С проектом .jar — как вы запустите http-сервер? Будет ли ваше приложение принимать входящий вызов REST?
Дополнительно: Как добавить CORS Filter в ваше веб-приложение на Джерси?
Вы должны добавить Cross-origin resource sharing в ваше приложение веб-Джерси. Пожалуйста, следуйте этому руководству для того же: http://crunchify.me/1VIwInK
Ну, есть простое решение. Есть способ создать очень простой HTTP-сервер (поддерживающий только GET / POST) в Java, используя только API Java SE, без написания кода для ручного разбора HTTP-запросов и ручного форматирования HTTP-ответов .
С помощью com.sun.net.httpserver.HttpServer Мы должны быть в состоянии достичь всего вышеперечисленного.
Давайте начнем:
Шаг 1:
Создать новый проект Java » CrunchifyJerseyEmbeddedHTTPServer «.
Шаг 2:
Преобразуйте его в Maven Project. Это упростит нашу жизнь для добавления зависимостей. Пожалуйста, следуйте этому руководству, чтобы преобразовать существующий Java Project в Maven Project .
Шаг 3:
В этом проекте нам просто нужно одно jersey-server зависимость.
Шаг 4:
Создайте JerseyEmbeddedHTTPServerCrunchify.java под com.crunchify.tutorial пакет.
|
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
50
51
|
пакет ком . crunchify. учебник ;
Импортировать Java. Ио. IOException ;
Импортировать Java. нетто. InetAddress ;
Импортировать Java. нетто. URI ;
Импортировать Java. нетто. UnknownHostException ;
Импортировать javax. WS. RS. ядро. UriBuilder ;
Импортировать ком . солнце. Джерси. api . контейнер . http-сервер . HttpServerFactory ;
Импортировать ком . солнце. Джерси. api . ядро. PackagesResourceConfig ;
Импортировать ком . солнце. Джерси. api . ядро. ResourceConfig ;
Импортировать ком . солнце. нетто. http-сервер . HttpServer ;
/ **
* @author Crunchify.com
*
* /
@SuppressWarnings ( «ограничение» )
общественности учебный класс JerseyEmbeddedHTTPServerCrunchify {
общественности статический недействительным main ( Строка [ ] аргументы ) бросает IOException {
Система. вне. println ( «Запуск встроенного Crunchify в Джерси HTTPServer … / n» ) ;
HttpServer crunchifyHTTPServer знак равно createHttpServer ( ) ;
crunchifyHTTPServer . начало ( ) ;
Система. вне. println ( String . format ( / nJersey Application Server запущен с WADL, доступным в + % sapplication.wadl / n , getCrunchifyURI ( ) ) ) ;
Система. вне. println ( Успешно запущен Crunchify в Джерси HTTPServer !!! ) ;
}
частный статический HttpServer createHttpServer ( ) бросает IOException {
ResourceConfig crunchifyResourceConfig знак равно новый PackagesResourceConfig ( com.crunchify.tutorial ) ;
// Этот учебник требуется, а затем включить ниже строки: http://crunchify.me/1VIwInK
//crunchifyResourceConfig.getContainerResponseFilters().add(CrunchifyCORSFilter.class);
вернуть HttpServerFactory . создать ( getCrunchifyURI ( ) , crunchifyResourceConfig ) ;
}
частный статический URI getCrunchifyURI ( ) {
вернуть UriBuilder . fromUri ( http: // + crunchifyGetHostName ( ) + / ) . порт ( 8085 ) . build ( ) ;
}
частный статический строка crunchifyGetHostName ( ) {
строка Hostname знак равно localhost ;
пытаться {
Hostname знак равно InetAddress . getLocalHost ( ) . getCanonicalHostName ( ) ;
} ловить ( UnknownHostException е ) {
эл . printStackTrace ( ) ;
}
вернуть hostName ;
}
}
|
Шаг 5:
Создайте свой REST API. Создать класс Java CrunchifyAPI.java под тем же пакетом « com.crunchify.tutorial »
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
пакет ком . crunchify. учебник ;
Импортировать javax. WS. RS. ПОЛУЧИТЬ ;
Импортировать javax. WS. RS. Путь ;
Импортировать javax. WS. RS. Производит ;
Импортировать javax. WS. RS. ядро. MediaType ;
@Path ( API )
общественности учебный класс CrunchifyAPI {
@ПОЛУЧИТЬ
@Produces ( MediaType . TEXT_PLAIN )
общественности строка получить ( ) {
вернуть / n Это Crunchify REST API через HTTPServer ;
}
}
|
Шаг 6:
И это все. Теперь щелкните правой кнопкой мыши на JerseyEmbeddedHTTPServerCrunchify.java а также Run it as Java Application «.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
Начиная Crunchify встраиваемый Джерси HTTPServer …
30 июня 2014 15:45:26 com.sun.jersey.api.core.PackagesResourceConfig init
ИНФОРМАЦИЯ: Сканирование корневых ресурсов и классов провайдеров в пакетах:
com.crunchify.tutorial
30 июня 2014 15:45:26 com.sun.jersey.api.core.ScanningResourceConfig logClasses
ИНФОРМАЦИЯ: Найдены классы корневых ресурсов:
класс com.crunchify.tutorial.CrunchifyAPI
30 июня 2014 15:45:26 com.sun.jersey.api.core.ScanningResourceConfig init
ИНФОРМАЦИЯ: Классы провайдера не найдены.
30 июня 2014 15:45:27 com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
ИНФОРМАЦИЯ: Инициирование заявки на Джерси, версия ' Джерси : 1.18.1 02/19/2014 03: 28 AM '
Сервер приложений Джерси запущен с WADL, доступным по адресу http: // localhost: 8085 / application.wadl
Начало Crunchify»s Встроенный джерси HTTPServer успешно ! ! !
|
Шаг 7:
Подтвердить результат. Посетите этот URL: http:// локальный: 8085 / апи и вы должны увидеть результат в браузере.
Надеюсь, вам понравится этот урок. Нужно поделиться любым комментарием?
Я здесь, чтобы слушать. Благодарю.
0.00 (0%) 0 votes











