Archivo de la etiqueta: J2EE

Jboss + Spring + Mbeans 1/3

Hace poco me encomendaron la desconocida tarea de registrar desde una aplicación stand alone con Spring un MBean en un servidor JBoss. Me costó mucho al principio enteder, lo primero que logré fue declarar un servicio en JBoss desde un archivo .SAR. No me acuerdo mucho del asunto, es algo así:

http://forum.springframework.org/showthread.php?t=11479

Se define una carpeta META-INF en un Proyecto Java, y adentro se le pone un jboss-service.xml, se lo exporta como .jar, y le cambiás la extensión a .SAR, y JBoss te lo toma como servicio.

Acá está el ejemplo:

META-INF/jboss-service.xml:

<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="com.acme.HelloWorldService" name="acme.com:service=HelloWorld">
<attribute name="Message">Hello World</attribute>
</mbean>
</server>com.acme.HelloWorldServiceMBean


com.acme.HelloWorldService

package com.acme; import org.jboss.system.ServiceMBeanSupport;public class HelloWorldService extends ServiceMBeanSupport implements HelloWorldServiceMBean
{
// Our message attribute
private String message = "Sorry no message today";// Getters and Setters
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}// The printMessage operation
public void printMessage()
{
log.info(message);
}// The lifecycle
protected void startService() throws Exception
{
log.info("Starting with message=" + message);
}
protected void stopService() throws Exception
{
log.info("Stopping with message=" + message);
}
}

com.acme.HelloWorldServiceMBean:

package com.acme;import org.jboss.system.ServiceMBean;public interface HelloWorldServiceMBean extends ServiceMBean
{
// Configure getters and setters for the message attribute
String getMessage();
void setMessage(String message);// The print message operation
void printMessage();
}Si esto les funciona, ya están listos para la siguiente y terrorífica etapa... obtener la info de un MBean del servidor!