---
title: '@Service-EJBs bei JBoss -- EJB 3.1 ruft'
url: 'https://tutego.de/blog/javainsel/2007/02/service-ejbs-bei-jboss-ejb-3-1-ruft'
markdown: 'https://tutego.de/blog/javainsel/2007/02/service-ejbs-bei-jboss-ejb-3-1-ruft.md'
date: '2007-02-09'
description: '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. @Servi…'
taxonomy:
  category:
    - 'Java EE'
---

# @Service-EJBs bei JBoss -- EJB 3.1 ruft

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## @Service-EJBs bei JBoss -- EJB 3.1 ruft

09.02.2007 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

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.

```java
@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.

```java
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)“

```java
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:

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

Weiteres, auch zum Lebenszkylus unter

- 
- [http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/jboss\_extensions.html](http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/jboss_extensions.html)

Kategorien: [Java EE](https://tutego.de/blog/javainsel/category/java-ee/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [JBoss, JMX und JConsole](https://tutego.de/blog/javainsel/2007/02/jboss-jmx-und-jconsole.md)
- Next: [Gerade noch in der Java EE, jetzt schon in der Java SE](https://tutego.de/blog/javainsel/2007/02/gerade-noch-in-der-java-ee-jetzt-schon-in-der-java-se.md)
