私は、VaRの引数NoSuchMethodError呼び出す方法は
public static void myMethod(String sourceClass, String sourceFunction,
String message, Object... args) {
}
私は2つの方法でこのメソッドを呼び出していて定義されたメソッドを持っています。
myMethod(className, methodName, "List of all users : {}", userLists);
myMethod(className, methodName, "consumers of reqID : {} are : {}", reqID, userLists);
私はコンパイルエラーを取得できませんでしたが、最初のメソッドの呼び出しが正常に実行されたのに対し、実行時に、私は2番目のメソッド呼び出しのエラーの下になりました。
java.lang.NoSuchMethodError: com.example.MyClass.myMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V at
UPDATE
デバッグした後、私は可能な原因をトレースし、それを修正することができます。
'myMethod'は異なるjarに属します。 アプリケーションコードをコンパイルしたときに、上に説明したものと一緒に存在するもう1つのオーバーロードされたメソッドがありました。
public static void myMethod(String processName, String sourceClass, String sourceFunction,
String message, Object... args) {
}
このオーバーロードされたメソッドが削除され、jarファイルが再生成され、この最終バージョンがwar pomに追加されます。私が作った
修正は次のとおりです。私は再びこの最終版で自分のアプリケーションのコードをコンパイルし、それが解決され
。
を試してみてください。長さを確認して後でキャストすることができます。 –
スタックをさらに印刷し、スタック内にmyMethodを呼び出すコードを追加します – andy
そのエラーは、コンパイルしたバージョンとは異なるバージョンのクラスで実行していることを意味します。 – VGR