WEB开发网
开发学院软件开发Java 用 Java 技术创建 RESTful Web 服务 阅读

用 Java 技术创建 RESTful Web 服务

 2010-06-14 00:00:00 来源:WEB开发网   
核心提示: ContactInfoWriter 则在所返回的资源表示被序列化之前由 JAX-RS 运行时调用,如果 isWriteable 返回 true 且 @Produces 是此资源方法的 @Produces 值最为接近的匹配,用 Java 技术创建 RESTful Web 服务(8),就会调用 wr

ContactInfoWriter 则在所返回的资源表示被序列化之前由 JAX-RS 运行时调用。如果 isWriteable 返回 true 且 @Produces 是此资源方法的 @Produces 值最为接近的匹配,就会调用 writeTo 方法。在这里,ContactInfoWriter 负责向底层的 OutputStream 序列化 ContactInfo 实例的内容。

MessageBodyReader

MessageBodyReaders 则与 MessageBodyWriters 相反。对于反序列化,JAX-RS 运行时支持与序列化相同的类型。用户也可以提供他或她自己的 MessageBodyReader 实现。MessageBodyReader 的最主要的功能是读取请求 InputStream 并将传入的字节反序列化到一个此资源方法期望的 Java 对象。ContactInfo 类型的 MessageBodyReader 可以类似于清单 12。


清单 12. 定制 MessageBodyReader

package com.ibm.jaxrs.sample.organization; 
 
import javax.ws.rs.Consumes; 
import javax.ws.rs.Produces; 
import javax.ws.rs.ext.MessageBodyReader; 
import javax.ws.rs.ext.Provider; 
 
@Provider 
@Consumes("text/xml") 
public class ContactInfoReader implements MessageBodyReader<ContactInfo> { 
 
 public boolean isReadable(java.lang.Class<ContactInfo> type, 
 java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] 
 annotations, MediaType mediaType) { 
 return true; 
 } 
 
 public ContactInfo readFrom(java.lang.Class<ContactInfo> type, 
 java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] 
 annotations, MediaType mediaType, MultivaluedMap< 
 java.lang.String,java.lang.String> httpHeaders, java.io.InputStream 
 entityStream) { 
 return ContactInfo.parse(entityStream); 
 } 
 
} 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Java 技术 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接