JAX-RS规范[中文翻译]--Applications

来源:互联网 发布:防火墙禁止软件联网 编辑:程序博客网 时间:2024/06/04 22:19
JAX-RS应用程序有一个或多个resource和零个或多个provider构成。这章先总体上介绍适用于应用程序的部分,后续将进行详细介绍。
2.1 Configuration
    组成JAX-RS应用程序的resource和provider需要用应用程序提供的Application的子类来定位。RS实现应提供可选择资源定位机制(如运行时扫描),但application是唯一便捷的配置方式。
2.2 验证
    略
2.3 发布
    RS应用程序有不同的发布方式,取决于运行与J2SE环境下还是Container下
    2.3.1 J2SE环境
        使用RuntimeDelegate.createEndpoint()创建endpoint的可配置实例,应用系统提供Application实例以及多个endpoint需要的类型,系统可以有多个endpoint类型。至于如何用endpoint实例发布服务不是该规范的范畴。
       2.3.1.1 JAX-WS
            对于支持通过JAX-WS发布,需要通过javax.xml.ws.Provider.createEndpoint()创建实例。JAX-WS规范中描述了如何通过Provider在J2SE中发布服务。
    2.3.2 Servlet
        RS应用程序打包成war包,符合servlet规范
        对于哪些支持servlet3可插拔特性(实现平台可移植,有利于特定容器的类扫描功能)的JAX-RS实现来说,需要满足一下的条件:
        a》没有提供Application的子类
            
    b》提供Application的子类。有三种情况,如下图
        
    如果war中有Application的子类,如果Application.getClasses()或Application.getSingletons都返回为空集合,那么将利用上述方法自动扫描;如果有一个返回非空则只需要将返回值包括进来即可。
    
    另外如果不是参与servlet3.0的可移植机制或想通过servlet filter来完成的话,则需要利用servlet3.0之前的版本,通过配置servlet或filter class并增加名字为javax.ws.rs.Application的Init-Param,该param的value为Application的子类。
    2.3 其它容器
        该规范对其它容器没有明确说明,由实现者实现。








        

0 0
原创粉丝点击