JAX-RS 2.0-Integration mit MBeans

JAX-RS 2.0 in Liberty unterstützt die Verwendung von MBeans als Stammressourcenklassen, Provider und Anwendungsunterklassen.

  • Zum Integrieren von JAX-RS 2.0 mit Mbeans fügen Sie den Eintrag <feature>managedBeans-1.0</feature> im Element "featureManager" in der Datei server.xml hinzu.
  • Wenn Sie eine MBean als JAX-RS-Ressource, -Provider oder -Anwendung verwenden möchten, verwenden Sie @ManagedBean, um diese Klasse zu annotieren.
    Verwenden Sie beispielsweise das Interceptor-Feature für Mbeans wie folgt:
    @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!" ;
        }
    }

Einschränkungen in JAX-RS 2.0 mit MBeans

Die Ressourceninjektion wird nur von den folgenden JAX-RS-Komponentenklassen unterstützt, die von Contexts and Dependency Injection (CDI) verwaltet werden:
  • Anwendungunterklassen
  • Provider
  • Stammressourcenklassen

Um eine MBean-Instanz in eine bestimmte JAX-RS-Komponentenklasse einzufügen, müssen Sie sicherstellen, dass diese Komponentenklasse als CDI-Bean erkannt und verwaltet werden kann.

Wenn Sie beispielsweise die MBean-Instanz printMyName wie folgt in eine JAX-RS-Stammressourcenklasse einfügen möchten, müssen Sie eine leere Datei beans.xml im WAR-Dateirepository /WEB-INF hinzufügen:
@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 Automatisch generierter Methodenstub
         System. out .println("Injection of ManagedBean is successful" );
    }

}

Symbol das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_jaxrs2.0_managedbeans
Dateiname: rwlp_jaxrs2.0_managedbeans.html