2014-12-21 9 views
0

3 개의 메소드와 4 개의 속성을 가지는 단순한 MBean X가 있습니다. 인터페이스 XMBean (2 가지 방법)을 구현합니다. 다른 클래스에서 JConsole에는 MBean 속성이없는 조작 만이 표시됩니다.

나는 그것을 등록 :

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); 

    X x= new X(14, 16, 17, 13); 

    ObjectName name = new ObjectName("package:type=xxxx"); 

    mbs.registerMBean(x, name); 

내가 JConsole의에서 볼 수 있습니다. 인터페이스에서 구현 한 두 가지 메서드를 호출 할 수 있습니다. 내 MBean의 속성도 봐야한다고 생각합니까? jConsole이 나에게 조작 만 보여주는 이유는 무엇입니까? 속성을 표시하는 방법?

+0

X 클래스의 코드 붙여 넣기. 3 가지 방법과 4 가지 특성은 무엇입니까? –

+0

감사합니다. 나는 코드를 붙여 넣었다. – peter55555

답변

0

나는 간단한 코드 아래에 붙여 넣은 :

public class X implements XMBean 
{ 
    public Automat(int aa, int bb, int cc, int dd) 
    { 
     a = aa; 
     b = bb; 
     c = cc; 
     d = dd; 
    } 

    public int operation1(char product) 
    { 
     return 1; 
    } 

    public int operation2(char product) 
    { 
     return 2; 
    } 

    public Integer getA() 
    { 
     return a; 
    } 

    public Integer getB() 
    { 
     return b; 
    } 

    public Integer getC() 
    { 
     return c; 
    } 

    public Integer getD() 
    { 
     return d; 
    } 

    private int a; 
    private int b; 
    private int c; 
    private int d; 
} 

/////////////////////////////// /////////////////////////////////////////////////////////////////// ///////

public interface XMBean 
{ 
    public int operation1(char product); 
    public int operation2(char product); 
} 
+1

두 가지가 누락 된 것을 볼 수 있습니다. 인터페이스에는 getter setter가 없지만 구현 클래스에는 setter도 없습니다. 이 예를 살펴보십시오. http://examples.javacodegeeks.com/enterprise-java/jmx/create-and-register-mbean-in-mbeanserver/ –

0

JMX는 * MBean 인터페이스를 사용하여 리플렉션에 많이 의존합니다. Andy가 말했듯이, XBean 인터페이스는 getter 및/또는 setter에서 속성을 노출해야합니다. Oracle's JMX tutorial에서 :

JMX 스펙에 의해 정의 된 바와 같이, 게터은 무효 반환과 이름이 GET으로 시작하지 않는 공공 방법 입니다. getter 을 사용하면 관리자가 반환 된 객체의 유형이 인 속성 값을 읽을 수 있습니다. setter는 단일 매개 변수 을 사용하고 이름이 set으로 시작하는 공용 메서드입니다. setter를 사용하면 관리자가 매개 변수와 동일한 유형의 속성에 새 값을 쓸 수 있습니다.

Eclipse를 사용하는 경우 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 열고 리팩터링> 인터페이스 추출을 클릭하여 인터페이스를 쉽게 생성 할 수 있습니다.