0

こんにちは、RuleStudio (変更された Eclipse) を使用して IBM Websphere ILOG JRules 7.0 で作業しており、TimerTask を実装しようとして問題が発生しています。

動作することがわかっている別のルールに基づいてテクニカル ルールを作成し、5 秒間待機してからセカンダリ メッセージを送信するコードを追加しようとしました。次のコードでこれを試しました:

int interval = 5000; // 5 sec
java.util.Date timeToRun = new java.util.Date(System.currentTimeMillis() + interval);
java.util.Timer timer = new java.util.Timer();

timer.schedule(new java.util.TimerTask() {
        public void run() {
            //  Message Sent Here
        }
    }, timeToRun); 

ただし、このコードはコンパイルされません。それが指摘するエラーは直後の開き括弧にnew java.util.TimerTask()あり、エラーメッセージはat token "{".

ただし、いくつかの興味深い観察結果があります。

-やってみましたが、間違い なくインポートされているので、どちらがおかしいと思うかというjava.util.TimerTask test = new java.util.TimerTask();エラーがスローされます。new java.util.TimerTask();Could not find a public constructor (or argument mismatch) for java.util.TimerTask.

-必要に応じて、コンプに Java バージョン 1.6.0_17 をインストールしています。

ありがとう!

4

2 に答える 2

0

これがまだ開いていることに気づきました。使用していたエンジンには、TimerTask...dohを含まないカスタマイズされたJavaライブラリが含まれていることがわかりました。ライブラリが実際に持っていたスレッドスリープコマンドを使用しました。

于 2011-07-01T18:43:56.047 に答える
0

私は ILOG を使った経験はありませんが、おそらくこれでうまくいくと思います:

java.util.Timer timer = new java.util.Timer();

class MyTask extends java.util.TimerTask {
    public void run() {
        //  Message Sent Here
    }
}

timer.schedule(new MyTask(), timeToRun);

それでもうまくいかない場合MyTaskは、メソッドを削除してください。

于 2011-04-18T20:50:56.983 に答える