2016-07-13 5 views
0

Я создал пользовательский JavaBean, который я хочу вернуть из моего метода MBean. Следующий обычай JavaBean:Как вернуть пользовательский объект в интерфейсе MBean

package org.text.jmx; 

public class Person { 
private firstName; 
private lastName; 

public Person(){ 
} 

public Person(String firstName, String lastName) { 
    this.firstName = firstName; 
    this.lastName = lastName; 
} 

public String getFirstName() { 
    return firstName; 
} 

public String getLastName() { 
    return lastName; 
} 

public void setFirstName(String firstName) { 
    this.firstName = firstName; 
} 

public void setLastName(String lastName) { 
    this.lastName = lastName; 
} 
} 

MBean интерфейс выглядит следующим образом:

package org.text.jmx; 

public interface TestJmxMBean { 
public Person getPerson(); 
public void setPerson(String firstName, String lastName); 
} 

классе реализует MBean:

package org.text.jmx; 

public class TestJmx implements TestJmxMBean { 
private Person person = new Person(); 

public Person getPerson() { 
    return person; 
} 

public void setPerson(String firstName, String lastName) { 
    person.setFirstName(firstName); 
    person.setLastName(lastName); 
} 
} 

создать серверное приложение, которое регистрирует выше MBean, что является успешным. Я создаю клиентское приложение, которое успешно подключается к серверному приложению через JMX, но когда я вызываю метод testJmx.getPerson() из клиентского приложения, возникает ошибка, из-за которой он не может вернуть объект Person. Что я делаю не так? Он отлично работает, я просто определяю тип возврата как String или String [] из TestJmx.getPerson().

ответ

0

Для того чтобы открыть пользовательский объект в качестве атрибута JMX или возвращаемого значения или операции, он должен быть определен как OpenType. Обычный способ сделать это - определить MXBean. Я ответил на аналогичный question, который должен дать вам представление о том, как действовать.

Смежные вопросы