我是Java中的webservices新手。我正在使用 JAX-RS 实现 Jersey 编写Web服务。
我想知道:
Web服务方法可以使用哪些返回类型?
据我所知,您不能使用原始类型作为Web服务方法的返回类型..为什么会这样?
答案 0 :(得分:1)
在Jersey文档中阅读Chapter 8: JAX-RS Entity Providers。它解释了如何在泽西岛完成(de)序列化。它解释了使用MessageBodyReader
和MessageBodyWriter
来将数据转换为Java对象和从Java对象转换为序列化流。
在本章的最后,您将看到泽西开箱即用的默认提供商
byte[] (*/*)
String (*/*)
InputStream (*/*)
Reader (*/*)
File (*/*)
DataSource (*/*)
Source (text/xml, application/xml and media types of the form application/*+xml)
JAXBElement (text/xml, application/xml and media types of the form application/*+xml)
MultivaluedMap<K,V> (application/x-www-form-urlencoded)
Form (application/x-www-form-urlencoded)
StreamingOutput ((*/*)) - this class can be used as an lightweight MessageBodyWriter<T> that can be returned from a resource method
Boolean, Character and Number (text/plain) - corresponding primitive types supported via boxing/unboxing conversion
除了基本提供程序之外,Jersey还有一些非默认提供程序用于处理诸如JSON到POJO(反之亦然)转换和处理Multipart之类的东西。您可以在Chapter 9中详细了解这些内容。如果没有提供者来处理我们的转换需求,那么我们也可以编写自己的读者或编写者来处理它。