Hi, I've tried to add new daemon service, following this post. Somehow, ONMS cannot start my service class.
Here is the MBean interface: import org.opennms.netmgt.daemon.BaseOnmsMBean; public interface TestMBean extends BaseOnmsMBean { } jmx Testd.java package org.nms.service.test.jmx; import org.opennms.netmgt.daemon.AbstractServiceDaemon; public class Testd extends AbstractServiceDaemon implements TestMBean{ /** * Logging category for log4j */ private static String LOG4J_CATEGORY = "OpenNMS.Testd"; /** * <p>Constructor for Testd.</p> */ public Testd() { super(LOG4J_CATEGORY); } /** * <p>onInit</p> */ protected void onInit() { Testd().init(); } /** * @return Testd instance */ private org.nms.service.test.Testd Testd() { return org.nms.service.test.Testd.getInstance(); } /** * <p>onStart</p> */ protected void onStart() { Testd().start(); } /** * <p>onStop</p> */ protected void onStop() { Testd().stop(); } public int getStatus() { return Testd().getStatus(); } } and service implementation Testd.java package org.nms.service.test; import org.opennms.netmgt.daemon.AbstractServiceDaemon; public class Testdextends AbstractServiceDaemon { private static final Testd m_singleton = new Testd(); public Testd() { super("OpenNMS.Testd"); } public static Testd getInstance() { return m_singleton; } @Override protected void onInit() { // TODO Auto-generated method stub } /** * <p>onStart</p> */ protected void onStart() { } /** * <p>onStop</p> */ protected void onStop() { } /** * <p>onPause</p> */ protected void onPause() { } /** * <p>onResume</p> */ protected void onResume() { } } service configuration: <service> <name>OpenNMS:Name=Testd</name> <class-name>org.nms.service.test.jmx.Testd</class-name> <invoke at="start" pass="0" method="init"/> <invoke at="start" pass="1" method="start"/> <invoke at="status" pass="0" method="status"/> <invoke at="stop" pass="0" method="stop"/> </service> I didn't put real logic inside those functions yet. I want to make sure the service can be started before I carry on my coding. Somehow, when I put my jar file into lib folder and restart ONMS, I got the following exception: An error occurred while attempting to start the "OpenNMS:Name=Testd " service (class org.nms.service.test.jmx.Testd). Shutting down and exiting. javax.management.NotCompliantMBeanException: org.nms.service.test.jmx.Testd does not implement DynamicMBean, neither f ollows the Standard MBean conventions (javax.management.NotCompliantMBeanExcepti on: Class org.nms.service.test.jmx.Testd is not a JMX compliant Standard MBean) nor the MXBean conventions (javax.management.NotCo mpliantMBeanException: org.nms.service.test.jmx.Testd: Class org.nms.service.test.jmx.Testd is not a JMX compliant MXBean) Can anyone tell me what is wrong with my code structure? Thx. Regards DJ -- View this message in context: http://opennms.530661.n2.nabble.com/Trying-to-write-OpenNMS-daemon-event-handler-tp7253144p7388845.html Sent from the OpenNMS - devel mailing list archive at Nabble.com. ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Please read the OpenNMS Mailing List FAQ: http://www.opennms.org/index.php/Mailing_List_FAQ opennms-devel mailing list To *unsubscribe* or change your subscription options, see the bottom of this page: https://lists.sourceforge.net/lists/listinfo/opennms-devel