Integración de JAX-RS 2.0 con beans gestionados

Java™ API para RESTful Web Services (JAX-RS) 2.0 en WebSphere Application Server tradicional admite el uso de beans gestionados como clases, proveedores y subclases de aplicaciones de recursos raíz.

  • Para utilizar un bean gestionado como recurso JAX-RS proveedor o aplicación, utilice el @ManagedBean para anotar dichas clases.
    Por ejemplo, utilice la característica de bean gestionado Interceptores de la siguiente manera:
    @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!" ;
        }
    }

Restricciones en JAX-RS 2.0 con beans gestionados

La inyección de recursos solo se admite por parte de las siguientes clases de componentes JAX-RS gestionadas por CDI (Inyección de dependencias y contextos):
  • Subclases de aplicación
  • Proveedores
  • Clases de recurso raíz

Concretamente, para inyectar una instancia de bean gestionado en una clase de componente JAX-RS determinada, debe asegurarse de que esta clase de componente se pueda reconocer y gestionar como un bean CDI.

Por ejemplo, para inyectar la instancia de bean gestionado printMyName en una clase de recurso raíz JAX-RS según se indica a continuación, debe añadir un archivo beans.xml vacío al repositorio .WAR file/WEB-INF:
@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() {
        // apéndice de método generado automáticamente TODO
        System. out .println("Injection of ManagedBean is successful" );
    }

}

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_jaxrs2
File name: rwbs_jaxrs2.0_managedbeans.html