---
title: 'JBoss, JMX und JConsole'
url: 'https://tutego.de/blog/javainsel/2007/02/jboss-jmx-und-jconsole'
markdown: 'https://tutego.de/blog/javainsel/2007/02/jboss-jmx-und-jconsole.md'
date: '2007-02-08'
description: 'Mit JBoss und den proprietären Annotationen ist es einfach eine JMX zu schreiben. JBoss bringt ein Beispiel gleich mit: package trail.jmx; public interface Rechner { // Attribute public void setGrowthrate (double g); public double getGrowthrate (); // The management method public double calculat…'
taxonomy:
  category:
    - Allgemein
---

# JBoss, JMX und JConsole

![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/)

## JBoss, JMX und JConsole

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

Mit JBoss und den proprietären Annotationen ist es einfach eine JMX zu schreiben. JBoss bringt ein Beispiel gleich mit:

```java
package trail.jmx;

public interface Rechner {

// Attribute
public void setGrowthrate (double g);
public double getGrowthrate ();

// The management method
public double calculate (int start, int end, double saving);

// Life cycle method
public void create () throws Exception;
public void destroy () throws Exception;
}

package trail.jmx;

import java.lang.management.ManagementFactory;

import javax.annotation.PostConstruct;

import org.jboss.annotation.ejb.Management;
import org.jboss.annotation.ejb.Service;

@Service (objectName="trail:service=calculator")
@Management(Rechner.class)
public class RechnerMBean implements Rechner {

double growthrate;

public void setGrowthrate (double growthrate) {
this.growthrate = growthrate;
}

public double getGrowthrate () {
return growthrate;
}
public double calculate (int start, int end, double saving) {
double tmp = Math.pow(1. + growthrate / 12., 12. * (end – start) + 1);
return saving * 12. * (tmp – 1) / growthrate;
}

// Lifecycle methods
public void create() throws Exception {
growthrate = 0.08;
System.out.println("Calculator – Creating");
}

public void destroy() {
System.out.println("Calculator – Destroying");
}

}
```

In der JMX-Console taucht die Klasse dann auf.

Wenn man das ganze nun mit der JConsole hinbekommen möchte, hat man ein Problem, denn JBoss meldet die Beans nicht am Standard-Container für JMX Beans an, sondern an einem eigenen. Daher benötigt JBoss einen Hinweis, in den Sun-Container zu schreiben. Dazu ist ein Schalter beim Starten (run.bat oder in Eclipse bei der Startkonfiguration) mit anzugeben:

-Djboss.platform.mbeanserver -Djavax.management.builder.initial=`org.jboss.system.server.jmx.MBeanServerBuilderImpl`

Unter Java 5 muss natürlich noch -Dcom.sun.management.jmxremote dazu.

Jetzt ist der „`Rechner`“ auch in der JConsole.

Kategorien: [Allgemein](https://tutego.de/blog/javainsel/category/allgemein/)

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

---

## Navigation

- Previous: [Einige Gründe, warum man keinen Second Level Cache (etwa bei Hibernate) verwenden soll](https://tutego.de/blog/javainsel/2007/02/einige-grunde-warum-man-keinen-second-level-cache-etwa-bei-hibernate-verwenden-soll.md)
- Next: [@Service-EJBs bei JBoss -- EJB 3.1 ruft](https://tutego.de/blog/javainsel/2007/02/service-ejbs-bei-jboss-ejb-3-1-ruft.md)
