用 Java 技术创建 RESTful Web 服务
2010-06-14 00:00:00 来源:WEB开发网与 MessageBodyWriter isWriteable 类似,ContactInfoReader 的 isReadable 方法将被调用以便决定 MessageBodyReader 能否处理此输入。如果 isReadable 返回 true 且 @Consumes 值与此资源方法的 @Consumes 值最为匹配,就会选择 ContactInfoReader。当 readFrom 方法被调用时,结果会是基于请求 InputStream 的内容创建 ContactInfo 实例。
配置
至此,我们探讨了 JAX-RS 资源类和一些提供程序类(MessageBodyReaders 和 MessageBodyWriters)。那么,该如何在 JAX-RS 运行时内配置这些类呢?这可以通过扩展 javax.ws.rs.core.Application 类实现。此类提供了一组类或一组单例(singleton)对象实例,在一个 JAX-RS 应用程序内包括所有的 根级别的资源和提供程序(由 @Provider 注释的类)。若为这个示例联系信息应用程序扩展这个 Application 类,它应该类似于清单 13。
清单 13. ContactInfoApplication
package com.ibm.jaxrs.sample.organization;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
public class ContactInfoApplicaiton extends Application {
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSetSet<Class<?>>();
classes.add(ContactsResource.class);
classes.add(ContactInfoWriter.class);
classes.add(ContactInfoReader.class);
}
public SetSet<Object<?>> getSingletons() {
// nothing to do, no singletons
}
}
更多精彩
赞助商链接