Illustration einer tropischen Insel mit Palmen und einem hohen Berg

Java Blog für Programmierer

@Service-EJBs bei JBoss -- EJB 3.1 ruft

· Christian Ullenboom

Bei JBoss ist eine Service-Bean eine besondere EJB, wovon es serverseitig nur ein Exemplar gibt. Unterschiedliche Clients werden immer mit dem gleichen Exemplar arbeiten. Es ist ein Singleton, ein nicht gepooltes Objekt. Eine Service-Bean wird mit @org.jboss.annotation.ejb.Service annotiert.

@Service
public class VitalityCheckBean implements...

Über @Remote und/oder @Local wäre sich auch ganz normal von außen zugänglich.

Interessant sind Service-Bean, weil sie an einem MBean-Server angemeldet werden können und so über JMX zugänglich sind. Dazu muss die EJB mit @Service annotiert werden, ein Management-Interface für die JMX-Operationen implementieren und mit der Annotation @org.jboss.annotation.ejb.Management das Management-Interface benennen. Das Management-Interface ist eine ganz normale Java-Schnittstelle und muss keiner Namenskonvention folgen. Alle dort genannten Methoden sind über eine JMX-Konsole sichtbar.

interface MyManagementInterface
{
void doIt();
String getValue();
void setValue( String string );
}

import org.jboss.annotation.ejb.*;

@Service
@Management( MyManagementInterface.class )
public class SimpleServiceBean implements MyManagementInterface
{

private String string = „(default)“

public void doIt() {
System.out.println( "Ausgabe" );
}

public void setValue( String string ) {
this.string = string;
}

public String getValue() {
return string;
}
}

In der JMX-Konsole unter suchen nach SimpleServiceBean mit ManagementInterface.

Der JMX-ObjectName lässt sich über das Attribut objectName der Annotation @Service ändern:

@Service(objectName="javatutor:service=SimpleServiceBean")
@Management(MyManagementInterface.class)
public class SimpleServiceBean implements ...

Weiteres, auch zum Lebenszkylus unter

Kategorien: Java EE

← Alle Beiträge