标签:
Jersey 是一个JAX-RS的实现, JAX-RS即Java API for RESTful Web Services, 支持按照表述性状态转移(REST)架构风格创建Web服务. REST 中最重要的概念是资源(resources),使用Global ID (通常使用 URI)标识. 客户端应用程序使用 HTTP 方法 GET/ POST/ PUT/ DELETE 操作资源或资源集. RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务. 通常, RESTful Web 服务应该定义以下方面:
Web 服务的基/根 URI,比如 http://host/<appcontext>/resources
支持 MIME 类型的响应数据,包括 JSON/XML/ATOM 等等
服务支持的操作集合, 例如 POST, GET, PUT 或 DELET.
JAX-RS 提供一个部署检测的抽象类Application用于声明根资源和提供对应的类, 在支持Servlet 3.0及以上的容器上, 可以不需要web.xml来部署. 仅需要在某个class上使用@ApplicationPath, 并扩展Application
@ApplicationPath("/*") public class MyApplication extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> s = new HashSet<Class<?>>(); s.add(HelloWorldResource.class); return s; } ... }
而Jersey提供了自己实现的方式, 可以更便利地使用其高级特性
@ApplicationPath("resources") public class MyApplication extends ResourceConfig { public MyApplication() { packages("org.foo.rest;org.bar.rest"); } }
此时要在pom.xml中添加 failOnMissingWebXml 以免构建中出现丢失web.xml的错误
<plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> ... </plugins>
在MyApplication()的初始化方法中,
packages("com.aa.bb", "com.aa.cc");可以提供多个用于自动扫描的包路径. 这些路径下, 就是标注了 @Path, @Produces, @GET等信息的资源类.
register()方法用于注册各种组件
Jersey the RESTful Web Services in Java
标签:
原文地址:http://www.cnblogs.com/milton/p/4559970.html