Problem with MBean JBoss3.2.3 -> JBoss4.0.0
michael.maurer Dec 1, 2004 9:39 AMWe have writen a MBEAN such as posted in the JBoss3.x docu: A Standard MBean Example page 118. (see code below)
This worked wounderfull in JBoss3.2.3.
After adapting the jboss-service.xml I was able to deploy it in JBoss4.0.0.
Using the jmx-Console I am able to view all the properties stored in the MBean. But when I try to connect to the MBean using JDNI
Context ctx = new InitialContext();
serverSettings = (ServerSettings)ctx.lookup("java:/MARSServerSettings");
from my application (inside Jboss) I am able to invoke the bean and its methods, but the returned properties are null.
Has anyone an idea whats the problem ?
It seems to me that the MBean is not a singleton anymore!
Cheers Michael
public interface ServerSettingsMBean extends java.io.Serializable {
public static final int STOPPED = 0;
public static final int STARTED = 1;
public void setProperty(String key, String value);
public void removeProperty(String key);
public String getProperty(String key);
public String listProperties();
public String[] getKeys();
public void setJNDIName(String jndiName);
public String getJNDIName();
public String getStatusString();
public int getStatus();
public void start();
public void stop();
}
public class ServerSettings implements ServerSettingsMBean {
private static final String TABLENAME = "MARSSERVERPROPERTIES";
private String JNDIName_ = "not set";
private int status_ = STOPPED;
private java.util.Hashtable properties_ = new java.util.Hashtable();
private transient Connection con_ = null;
public void setProperty(String key, String value) {
setPropertyDB(key.trim(),value.trim());
properties_.put(key.trim(), value.trim());
}
public String getProperty(String key) {
System.out.println("ServerSettings-getProperty "+key);
String retValue = (String)properties_.get(key.trim());
System.out.println("ServerSettings-getProperty returns "+retValue);
return retValue;
}
.......
}
<server> <mbean code="at.tugraz.genome.marsservice.ServerSettings" name="at.tugraz.genome.marsservice:service=ServerSettings"> <attribute name="JNDIName">java:/MARSServerSettings</attribute> <depends>jboss.jca:service=DataSourceBinding,name=jdbc/DefaultDS</depends> <!--depends>jboss.jca:service=XATxCM,name=jdbc/DefaultDS</depends> <depends>jboss.jca:service=ManagedConnectionFactory,name=jdbc/DefaultDS</depends> <depends>jboss.jca:service=ManagedConnectionPool,name=jdbc/DefaultDS</depends--> </mbean> </server>