1

JMX マネージド Bean として公開されている Spring Bean があります。JConsole を使用して、メソッド (マネージド操作) を呼び出し、プリミティブ型の入力パラメーターと文字列値を渡すことができます。しかし、日付型の入力パラメーターを渡すことができません。Date 型の引数を渡す方法を理解するのを手伝ってくれる人はいますか?

4

1 に答える 1

2

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);
    }       
}

日付を UDT Long として渡す:

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

これは純粋に JConsole の制限であることに注意してください。プログラムで JMX を使用すると、java.util.Date問題なく a を渡すことができます。

于 2013-11-09T13:55:32.463 に答える