Actually yes I have infact I copied the example ;)
Even the example did not work.
I run Jboss 4.0.0 as default.
And then I cut and paste TestService.sar in the deploy folder...
Here I will provide my code and XML descriptors...
jboss-service.xml for my Mbean...
Ass for persisteName I get an exception listed below the code...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mbean PUBLIC
"-//JBoss//DTD JBOSS XMBEAN 1.1//EN"
"http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_1.dtd">
<server>
<mbean code="org.package.TestService" name="org.package:service=TestService" xmbean-dd="">
<xmbean>
<!-- MBean Info -->
<description>Test Service</description>
<descriptors>
<persistence persistPolicy="OnUpdate"/>
<persistence-manager value="org.jboss.mx.persistence.DelegatingPersistenceManager"/>
</descriptors>
<class>org.package.TestService</class>
<!-- Attributes -->
<attribute access="read-write" getMethod="getParam" setMethod="setParam">
<description>A parameter</description>
<name>Param</name>
<type>java.lang.String</type>
<descriptors>
<value value="Hello World"/>
</descriptors>
</attribute>
<operation>
<description>Prints the parameter value to the console.</description>
<name>printParam</name>
</operation>
&defaultAttributes;
&defaultOperations;
</xmbean>
</mbean>
</server>
jboss-service.xml of Jboss, persistence section...
<!-- ==================================================================== -->
<!-- XMBean Persistence -->
<!-- ==================================================================== -->
<mbean code="org.jboss.system.pm.AttributePersistenceService"
name="jboss:service=AttributePersistenceService"
xmbean-dd="resource:xmdesc/AttributePersistenceService-xmbean.xml">
<!-- the AttributePersistenceService is persistent, itself -->
<!--
<attribute name="AttributePersistenceManagerClass">org.jboss.system.pm.XMLAttributePersistenceManager</attribute>
<attribute name="AttributePersistenceManagerConfig">
<data-directory>data/xmbean-attrs</data-directory>
</attribute>
<attribute name="ApmDestroyOnServiceStop">false</attribute>
<attribute name="VersionTag"></attribute>
-->
</mbean>
My Service's code...
package org.package;
import org.jboss.system.ServiceMBean;
public interface TestServiceMBean extends ServiceMBean
{
public void setParam(String param);
public String getParam();
public void printParam();
}
package org.package;
import java.util.*;
import org.jboss.system.ServiceMBeanSupport;
import org.apache.xmlrpc.*;
public class TestService extends ServiceMBeanSupport implements
TestServiceMBean
{
String param = "Not initialized.";
public void setParam(String param)
{
this.param = param;
}
public String getParam()
{
return(param);
}
public void printParam()
{
log.info("Param value: " + param);
}
protected void startService() throws Exception
{
log.info("Starting service...");
try
{
XmlRpcClient xmlrpc = new XmlRpcClient ("https://deesse.trustmarque.ca");
Vector params = new Vector ();
params.addElement ("some parameter");
// this method returns a string
Vector result = (Vector) xmlrpc.execute ("system.listMethods", params);
Iterator it = result.iterator();
while(it.hasNext())
{
log.info((String)it.next());
}
}
catch(Exception ex)
{
log.error(ex.toString());
}
}
protected void stopService() throws Exception
{
log.info("Stopping service...");
}
}
The reason I use persiste name is because if I don' t use it Iget the following exception when deploying...
16:16:40,058 WARN [EntityResolver] Entity is not registered, publicId=-//JBoss/
/DTD JBOSS XMBEAN 1.1//EN systemId=http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_
1.dtd
16:16:40,105 WARN [BasicMBeanRegistry] javax.management.MBeanRegistrationExcept
ion: preRegister() failed: [ObjectName='org.tmi:service=TestService', Class=org.
tmi.TestService (org.tmi.TestService@181e7fe)]
16:16:40,105 INFO [TestService] Registration is not done -> stop
16:16:40,105 ERROR [MainDeployer] could not create deployment: file:/C:/Programm
ing/jboss-4.0.0/server/default/deploy/TestService.sar/
org.jboss.deployment.DeploymentException: - nested throwable: (java.lang.reflect
.InvocationTargetException)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java
:139)
at org.jboss.system.ServiceController.install(ServiceController.java:200
)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy4.install(Unknown Source)
at org.jboss.deployment.SARDeployer.create(SARDeployer.java:208)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:889)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:745)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:709)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:119)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:131)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy8.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen
tScanner.java:305)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS
canner.java:481)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
doScan(AbstractDeploymentScanner.java:204)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
loop(AbstractDeploymentScanner.java:215)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
run(AbstractDeploymentScanner.java:194)
Caused by: java.lang.reflect.InvocationTargetException
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.jav
a:1426)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.jav
a:1327)
at org.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:
328)
at org.jboss.system.ServiceCreator.install(ServiceCreator.java:149)
at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigura
tor.java:149)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java
:114)
... 33 more
Caused by: javax.management.MBeanException
at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptio
ns(ReflectedDispatcher.java:166)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:149)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:119)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:131)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1397)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.jav
a:1392)
... 38 more
Caused by: javax.management.MBeanRegistrationException: preRegister() failed: [O
bjectName='org.tmi:service=TestService', Class=org.tmi.TestService (org.tmi.Test
Service@181e7fe)]
at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(Bas
icMBeanRegistry.java:707)
at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMB
eanRegistry.java:197)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
... 48 more
Caused by: javax.management.MBeanException
at org.jboss.mx.persistence.DelegatingPersistenceManager.init(Delegating
PersistenceManager.java:234)
at org.jboss.mx.persistence.DelegatingPersistenceManager.load(Delegating
PersistenceManager.java:74)
at org.jboss.mx.modelmbean.ModelMBeanInvoker.load(ModelMBeanInvoker.java
:372)
at org.jboss.mx.modelmbean.ModelMBeanInvoker.init(ModelMBeanInvoker.java
:485)
at org.jboss.mx.modelmbean.ModelMBeanInvoker.invokePreRegister(ModelMBea
nInvoker.java:447)
at org.jboss.mx.server.AbstractMBeanInvoker.preRegister(AbstractMBeanInv
oker.java:613)
at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(Bas
icMBeanRegistry.java:691)
... 53 more
Caused by: java.lang.Exception: must specify a value for: persistName
... 60 more
Thanks