Как настроить сервер Restlet с JAXRS и JAXB? - PullRequest
2 голосов
/ 15 апреля 2011

Я искал по всему интернету, пытаясь найти пример того, как это сделать. Я просто хочу настроить REST-сервер, который автоматически сериализует объекты в и из XML. Я просто пытаюсь предоставить сервер, который может облегчить вход пользователя в систему, выход из него и доступ к списку объектов XML только после того, как пользователь вошел в систему. Что требуется для запуска простого примера приложения?

Мне не удается понять, как работает библиотека Restlet, и я совершенно новичок в использовании JAXB и JAXRS. Я работал над проектом, который использует эти библиотеки, но только с точки зрения клиента.

Ответы [ 3 ]

7 голосов
/ 15 апреля 2011

Restlet можно рассматривать как реализацию JAXRS.Простое руководство предоставляется по адресу: http://wiki.restlet.org/docs_1.1/13-restlet/28-restlet/57-restlet.html

Вам необходимо поместить следующие файлы jar в ваш путь к классам.Эти файлы jar можно найти в дистрибутиве рестлета (например, версия 2.0.5):

  • javax.ws.rs.jar
  • org.restlet.ext.jaxrs.jar
  • org.restlet.jar

Как вы видите в руководстве, вы реализуете свой ресурс и приложение JAXRS.Существует два различных способа запуска всего веб-приложения:

  • Использование встроенного сервера Restlet
  • Использование веб-контейнера JavaEE

InЧтобы интегрировать поддержку JAXB, сначала нужно понять, как работает поддержка представления Restlet.Содержимое запросов / ответов REST содержится в представлении.Поддерживаются разные форматы, и это открыто и расширяемо.Эта поддержка представления может использоваться с объектами преобразователя и службой преобразования.

Объект преобразователя отвечает за преобразование элемента в другой.Например, если вы передаете экземпляр Java и хотите преобразовать его в XML для отправки обратно в ответ REST.Служба конвертации отвечает за интеллектуальное управление этим преобразованием, основываясь на типе мультимедиа и поддерживая привязку контента (тип контента, определенный в заголовках Accept и Content-Type).Конвертеры автоматически регистрируются, когда они присутствуют в classpath.

Для JAXB давайте добавим следующий jar в ваш classpath:

  • активации.jar
  • jaxb-api.jar
  • jsr173_1.0_api.jar

Итак, давайте рассмотрим пример:

  • Вы отправляете запрос REST на ваше приложение Restlet JAXRS.Вы задаете заголовок Accept со значением application / xml, потому что ожидаете XML-содержимого для содержимого ответа.

  • В вашем ресурсе возвращается соответствующий метод JAXRS для запроса и требуемый тип содержимогообъект.Restlet автоматически проверит, существует ли зарегистрированный конвертер для обработки преобразования между объектом Java в XML.Если вы добавили расширение Restlet JAXB, оно будет использоваться, если объект Java помечен аннотациями JAXB.

  • Преобразователь JAXB будет использовать преобразователь для генерации вывода XML с использованием JAXB.

  • Ответ отправляется обратно клиенту.

В противном случае, какую защиту вы хотите реализовать?На основе пользователя / пароля?

Надеюсь, это понятно и будет полезно!Thierry

2 голосов
/ 15 апреля 2011

Вам может пригодиться следующий пример (из мой блог ).В этом примере используется Jersey, а не Restlet, но, поскольку они являются обеими реализациями JAX-RS, различий должно быть только небольшое.

1 голос
/ 15 апреля 2011

Я не могу говорить с Рестлетом.

Java 6 поставляется с JAXB, поэтому для этого не нужно ничего устанавливать.

Веб-профиль Glassfish v3.1 поставляется с предустановленной Джерси.Так что вы можете просто скачать это и начать работать.

...