如何使用JAXRS和JAXB设置Restlet服务器?

时间:2011-04-15 02:40:37

标签: rest jaxb jax-rs restlet

我一直在寻找互联网,试图找到一个如何做到这一点的例子。我只想设置一个REST服务器,它自动将对象与XML进行序列化。我只是尝试提供一个服务器,只有在用户登录后才能使用户登录,注销和访问XML对象列表。获得一个简单的示例应用程序需要什么?

我没有理解Restlet库的工作方式,而且我对使用JAXB和JAXRS完全不熟悉。我参与了一个使用这些库的项目,但仅从客户的角度来看。

3 个答案:

答案 0 :(得分:7)

Restlet可以看作是JAXRS实现。地址提供了一个简单的教程: http://wiki.restlet.org/docs_1.1/13-restlet/28-restlet/57-restlet.html

您需要在类路径中放入以下jar文件。这些jar文件可以在restlet发行版中找到(例如版本2.0.5):

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

正如您在教程中看到的,您实现了JAXRS资源和应用程序。然后有两种不同的方式来启动整个Web应用程序:

  • 使用内置的Restlet服务器
  • 使用JavaEE Web容器

为了集成JAXB支持,首先需要了解Restlet的表示支持是如何工作的。 REST请求/响应的内容包含在表示中。支持不同的格式,这是开放和可扩展的。此表示支持可与转换器实体和转换器服务一起使用。

转换器实体负责将元素转换为另一个元素。例如,如果您传递Java实例并且希望将其转换为XML以在REST响应中发回。转换器服务负责以智能方式处理此转换,基于媒体类型和支持内容协商(在Accept和Content-Type标头中定义的内容类型)。转换器在类路径中出现时会自动注册。

对于JAXB,让我们在你的类路径中放入以下jar:

  • 的activation.jar
  • JAXB-api.jar文件
  • jsr173_1.0_api.jar

让我们举一个例子:

  • 您在Restlet JAXRS应用程序上发送REST请求。您可以使用值application / xml指定Accept标头,因为您希望响应内容具有XML内容。

  • 在您的资源中,请求的相应JAXRS方法和所需的内容类型返回一个对象。 Restlet将自动检查是否有已注册的转换器来处理Java对象到XML之间的转换。如果添加了Restlet JAXB扩展,则在Java对象使用JAXB注释进行注释时,它将使用它。

  • JAXB转换器将使用转换器使用JAXB生成XML输出。

  • 将回复发送回客户端。

否则,您想要实现什么样的安全性?用户/密码?

希望它清楚,它会有所帮助! 亨利

答案 1 :(得分:2)

您可能会发现以下示例(来自my blog)非常有用。该示例使用Jersey not Restlet,但由于它们都是JAX-RS实现,因此应该只有很小的差异。

答案 2 :(得分:1)

我不能和Restlet说话。

Java 6附带了JAXB,所以没有什么可以安装的。

Glassfish v3.1 Web Profile预装了Jersey。因此,您只需下载并启动并运行即可。