Изучаем Java EE 7 - [252]
>$ curl — X GET — H "Accept: application/json"
>····http://localhost:8080/chapter15-service-1.0/rs/book
В главе 12 были рассмотрены некоторые спецификации, связанные с XML и JSON. Спецификации делятся на две группы: касающиеся обработки (JAXP и JSON-P) и связывания (JAXB). Благодаря связыванию JAX-RS будет преобразовывать список компонентов в XML с помощью встроенных интерфейсов MessageBodyReader и MessageBodyWriter, основанных на JAXB. К сожалению, пока не существует технологии связывания для работы с JSON (ожидается, что она появится в ближайшие годы и будет называться JSON-B). Поэтому на данный момент невозможно автоматически выполнить маршалинг компонента в JSON. Вот почему в классе ApplicationConfig нам требуется добавить Jersey-специфичный поставщик (MOXyJsonProvider). Так мы получаем JSON-интерфейсы MessageBodyReader и MessageBodyWriter. Но такой прием не обладает портируемостью на все реализации JAX-RS.
Компиляция и упаковка с помощью Maven
Теперь все классы должны быть скомпилированы и упакованы в WAR-файл (
>
>
>·········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">
>··
>··
>····
>····
>····
>··
>··
>··
>··
>··
>··
>····
>······
>······
>······
>······
>····
>····
>······
>······
>······
>······
>····
>··
>··
>····
>······
>········
>········
>········
>········
>··········
>··········
>········
>······
>······
>········
>········
>········
>········
>··········
>········
>······
>······
>········
>········
>········
>········
>··········
>············
>············
>··············
>··············
>············
>··········
>········
>······
>····
>··
>
Для компиляции и упаковки классов откройте командную строку в корневом каталоге, содержащем файл pom.xml, а затем введите следующую команду Maven:
>$ mvn package
Перейдите в целевой каталог, найдите файл chapter15-service-1.0.war и откройте его. Обратите внимание: Book.class, Books.class, ApplicationConfig.class и BookRestService.class находятся в каталоге WEB-INF\classes. В названном WAR-архиве также упакован файл persistence.xml.
Развертывание в GlassFish
Когда код будет упакован, убедитесь, что у вас работают GlassFish и Derby, после чего разверните WAR-файл, воспользовавшись инструментом командной строки asadmin. Откройте консоль, перейдите в каталог target, где расположен файл chapter15-service-1.0.war, и введите:
>$ asadmin deploy chapter15-service-1.0.war
Если развертывание пройдет успешно, следующая команда должна вернуть имя развернутого компонента и его тип:
>$ asadmin list-components
>chapter15-service-1.0
Теперь, когда приложение развернуто, можете воспользоваться инструментом cURL из командной строки, чтобы создавать книжные ресурсы с помощью запросов POST, а также получать все ресурсы (или только один конкретный) с помощью запросов GET. Запросы DELETE удаляют книжные ресурсы.
WADL
В начале этой главы я вкратце упомянул о WADL (языке описания веб-приложений) и сказал, что он пока не стандартизирован и не очень активно используется в архитектуре REST. Но если вы хотели бы взглянуть, как на этом языке можно описать нашу REST-службу BookRestService, обратите внимание на такой URL:
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.