2013-11-07 2 views
1

У меня есть фасоль Spring, которая отображается как управляемый компонент JMX. Используя JConsole, я могу вызвать методы (управляемые операции) и передать входные параметры примитивных типов, а также значения String. Но не удалось передать входной параметр даты типа. Может ли кто-нибудь помочь мне понять, как передать аргумент типа Date?Как предоставить параметры даты через JConsole для MBean (весной)

ответ

1

У вас есть 2 основных варианта, а также несколько основных вариантов. Допустим, у вас есть простой атрибут, как это:

import java.util.Date; 
import java.text.SimpleDateFormat; 
....... 
public void setDate(Date date) { 
    // Implement date function here 
} 

Ваши открытые методы JMX (которые могут быть вызваны через JConsole), который будет внутренне создать дату и делегировать указанным выше способом было бы:

Пропустите дата в виде строки с форматом для анализа, как:

public void setDate(String format, String date) { 
    try { 
     setDate(new SimpleDateFormat(format).parse(date)); 
    } catch (ParseException e) { 
     throw new RuntimeException("Failed to parse date [" + date + "] with expected format [" + format + "]", e); 
    } 
} 

Вариация: Использовать стандартный формат

/** The standard date format to pass dates as */ 
public static final String STD_FORMAT = "yyy-MM-dd"; 

public void setDate(String date) { 
    try { 
     setDate(new SimpleDateFormat(STD_FORMAT).parse(date)); 
    } catch (ParseException e) { 
     throw new RuntimeException("Failed to parse date [" + date + "] with expected format [" + STD_FORMAT + "]", e); 
    }  
} 

Pass Дата, UDT Long:

public void setDate(long time) { 
    setDate(new Date(time)); 
} 

Имейте в виду, что это чисто ограничение JConsole. Используя программный код JMX, вы можете без проблем передать java.util.Date.

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