概述
jax-rs,jsr-311是一个新的jcp规范,它通过http协议提供了java的api给restful风格的web服务。restEasy是整个协议的简便实现,它可以运行在任何servlet的容器之中,更紧密的和jboss应用集成,让使用者体验更舒适的环境,当jax-rs还只是一个服务端的规范时,restEasy已经提供了客户端的集成框架,它允许你通过注解和接口代理的方式 去发送http请求给远端的服务器。
JAX-RS的实现(java api for restful web services).
轻便的应用于应用服务器(如tomcat),需要jdk5或者更高。
内嵌的服务已经实现了junit的测试
EJB和Spring的集成。
客户端框架让HTTP请求更简单(JAX-RS仅定义了服务端的绑定)。
许可
- restEasy是满足ASL2.0许可的分布式规范
安装和配置
RestEasy安装和配置的方法取决于你所部属的环境,若果你运行在JBOSS AS6或更高的环境,那么它已经绑定和集成了,你只需要做很少的部分,如果你部属在一些其他的环境,这里有写安装手册和配置,你需要做的。
- 3.1集成JBOSS as 7
已经绑定在了AS7中,解压RestEasy的zip到目录下。
3.2 集成子在as7,eap和wildfly
需要web.xml文件,在里面你也可以部属自己的servlet,filter或安全约束,*最简单的工作是必要的,创建一个空的web.xml文件,并且可以通过context-param参数配置restEasy的特性。如果我们不使用JAX-RS的servlet mapping,我们必须定义一个Anpplication级别的class类,加上@ApplicationPath注解,如果你返回一个空的set集合和一个单例,你的War文件会被注解资源扫描,并且提供服务。
3.4.1 resteasy会自动的加载你的发布的classpath,当且仅当你发布restful 应用的时候,如果你想要使用客户端的lib,你必须创建一个部署,并且仅当一个restEasy的特性会自动的加载,为了加载这些lib库,你需要创建一个jboss-deplyment-stucture.xml文件在你的web-inf目录下给你的war文件。
3.5 独立运行在servelt 3.0容器中
像运行在tomcat或者jetty这样的容器中1.你需要引入核心的restEasy jars在你的war包中,restEasy通过ServeltContainerInitializer接口. 2.引入maven的依赖。
3.6 restEasy-servlet-initiallizer不会工作在比servlet更低的版本中
所以需要手动的申明restEasy的servlet在你的web.xml文件中,它代表了要初始化restEasy的基本组件
- 3.7 可选的配置
都是通过web.xml中的 来注入的
如果restEasy的url-pattern不是 /*,则必须配置
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/restful-services/*</url-pattern>
</servlet-mapping>
前缀就必须是:
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/restful-services</param-value>
</context-param>
3.8 在init-param中设置了自己的Applicaiton 那么就要关闭掉自动扫描。否则同一个class会被重复的注册
3.9 通过sevletContextListener来注册RestEasy。
这个配置是比较过时的,如果你使用servlet 3.0或者更高,参考例子spring的集成。restEasyBootsrap 类是一个servletContextListener配置实例provider工厂和注册器。你可以获得工厂和注册器实例通过互相影响。
3.10 像Filter一样配置RestEasy
像servlet一样配置,你不能直接访问类似.html .jpeg等资源,而你可以配置一个filter来代替,如果restful资源没有找到,则RestEasy会代理回去让基本容器来解析urls.
3.11 RestEasy的日志
对于log4j和slf4j是,有谁用谁
如果都没有默认用Util下面的logging