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

如何使用JAXRS和JAXB设置Restlet服务器?,rest,jaxb,jax-rs,restlet,Rest,Jaxb,Jax Rs,Restlet,我一直在互联网上寻找如何做到这一点的例子。我只想设置一个REST服务器,它自动将对象序列化到XML和从XML序列化对象。我只是想提供一个服务器,该服务器可以在用户登录后方便用户登录、注销和访问对象的XML列表。要启动并运行一个简单的示例应用程序,需要什么 我没有掌握Restlet库的工作方式,而且我对使用JAXB和JAXRS是完全陌生的。我曾参与过一个使用这些库的项目,但只是从客户的角度来看。我无法与Restlet对话 Java6随JAXB一起提供,因此无需为此安装任何东西 Glassfish

我一直在互联网上寻找如何做到这一点的例子。我只想设置一个REST服务器,它自动将对象序列化到XML和从XML序列化对象。我只是想提供一个服务器,该服务器可以在用户登录后方便用户登录、注销和访问对象的XML列表。要启动并运行一个简单的示例应用程序,需要什么


我没有掌握Restlet库的工作方式,而且我对使用JAXB和JAXRS是完全陌生的。我曾参与过一个使用这些库的项目,但只是从客户的角度来看。

我无法与Restlet对话

Java6随JAXB一起提供,因此无需为此安装任何东西


Glassfish v3.1 Web配置文件预装了Jersey。因此,您只需下载并开始运行即可。

您可能会发现以下示例(来自)很有用。该示例使用的不是Restlet,但由于它们都是JAX-RS实现,所以应该只有很小的区别


Restlet可以看作是一个JAXRS实现。以下地址提供了一个简单的教程:

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

  • javax.ws.rs.jar
  • org.restlet.ext.jaxrs.jar
  • org.restlet.jar
正如您在教程中所看到的,您实现了JAXRS资源和应用程序。然后有两种不同的方式来启动整个web应用程序:

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

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

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

  • 激活.jar
  • jaxb-api.jar
  • jsr173_1.0_api.jar
让我们举个例子:

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

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

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

  • 响应被发送回客户端

否则,您希望实现什么样的安全性?基于用户/密码

希望这是明确的,这将是有益的!
蒂埃里

很酷。这是什么意思?我甚至不知道这些图书馆做什么。说到Java开发,我绝不是一个初学者,我只是对这些库和它们的工作还不熟悉。我正在运行嵌入Java媒体服务器的服务器,因此我需要它尽可能轻量级。JAXB是Java XML绑定框架。简单地说,它使将XML转换为Javabean变得容易。JAXRS是用于REST类服务(与SOAP相反)的JavaWeb服务框架。Glassfish是一款JEE应用服务器。3.1是最新版本。Glassfish Web概要文件是JEE的一个新概要文件,它基本上提供了一个启动的servlet容器,但不是所有JEE。Jersey是JAXRS的参考实现,它与Glassfish 3.1捆绑在一起。因此,通过在Java6上获得GF3.1,您应该获得JAXR和JAXB。如果你有NetBeans IDE,你可以得到整个工具包,只需点击鼠标就可以运行。谢谢,这绝对有帮助。我现在有一个半函数应用程序@Thierry我正在尝试将所有jar都放在类路径中。仍然是转换器使我的对象为空。我正在使用XMLRootElement注释。这是JAXB的注释还是我必须使用的其他注释。