将 JAX-RS 2.0 与受管 Bean 集成

WebSphere® Application Server(传统)中的 Java™ API for RESTful Web Services (JAX-RS) 2.0 支持将受管 Bean 用作根资源类、提供程序和应用程序子类。

  • 要将受管 Bean 用作 JAX-RS 资源、提供程序或应用程序,请使用 @ManagedBean 对这些类进行注释。
    例如,按如下所示使用拦截器受管 Bean 功能:
    @ManagedBean ("JaxrsManagedBean" )
    @Path ("/managedbean" )
    public class ManagedBeanResource {
    
        public static class MyInterceptor {
            @AroundInvoke
            public Object around(InvocationContext ctx) throws Exception {
                System. out .println("around() called" );
                return ctx.proceed();
            }
        }
    
        @GET
        @Produces( "text/plain")
        @Interceptors(MyInterceptor. class )
        public String getIt() {
            return "Hi managed bean!" ;
        }
    }

对 JAX-RS 2.0 与受管 Bean 的限制

仅上下文和依赖关系注入 (CDI) 管理的下列 JAX-RS 组件类支持资源注入:
  • 应用程序子类
  • 提供程序
  • 根资源类

特别地,要将受管 Bean 实例注入特定 JAX-RS 组件类中,您必须确保可以将此组件类作为 CDI Bean 进行识别和管理。

例如,要将 printMyName 受管 Bean 实例注入如下所示的 JAX-RS 根资源类中,您必须在 .WAR file/WEB-INF 存储库中添加一个空的 beans.xml 文件:
@Path ("/managedbean" )
public class ManagedBeanResource {

    @Resource(name = "printMyName" )
    private PrintMyName printMyName ;

    @GET
    @Produces( "text/plain")
    public String getIt() {
        printMyName .print();
        return "Hi managed bean!" ;
    }
}


@ManagedBean ("printmyname" )
public class PrintMyName {

    public void print() {
        // TODO Auto-generated method stub
        System. out .println("Injection of ManagedBean is successful" );
    }

}

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_jaxrs2
文件名:rwbs_jaxrs2.0_managedbeans.html