JMX endpoints need a reference to an MBeanServer. The MBeanServer is a sub-interface of MBeanServerConnection. When connecting to a remote MBeanServer, the server is an instanceof MBeanServerConnection, not MBeanServer. Change the Endpoints to get a reference to an MBeanServerConnection. Add IOException catch clauses where necessary.