2017-02-10 15 views
7

websphereにデプロイされたアプリケーションでスプリングバッチを実行しようとしています。私はすべてがうまく動作しますが、私は、WebSphereにデプロイされたアプリケーションで同じバッチを実行すると、それは私がparanamerのBytecodeReadingParanamerクラスのソースコードをチェックし、それがコンパイルされたクラスファイルのデバッグ情報が欠落しているためにパラナマーエラーが発生しました

if (!collector.isDebugInfoPresent()) { 
      if (throwExceptionIfMissing) { 
       throw new ParameterNamesNotFoundException("Parameter names not found for " + methodName); 
      } else { 
       return Paranamer.EMPTY_NAMES; 
      } 
     } 

を言う

com.thoughtworks.paranamer.ParameterNamesNotFoundException: Parameter names not found for executeMethod 
    at com.thoughtworks.paranamer.BytecodeReadingParanamer$TypeCollector.getParameterNamesForMethod(BytecodeReadingParanamer.java:209) 

エラーになります日食を使用してバッチを実行すると、私は、Javaクラスがwebsphere上でデバッグ情報(-gフラグ?)でコンパイルされていなかったのに対し、Eclipseではこの情報を持っていると考えています。

websphereでこのエラーを修正する方法を教えてください。 Javaコンパイル済みクラスフラグにデバッグ情報を追加していますか?コンパイラのサーバーでいくつかのバグがあったとして問題@minus

おかげ

エイデン

+0

誰でもどうぞ! – Aiden

+0

コンパイルされたクラスファイルにパラメータ名を含めるオプションは、デバッグオプションとは異なります。 'javac'では' -parameters'オプションです。しかし、私はWebsphereについて何も言えません... – Holger

+0

コードはif(!collector.isDebugInfoPresent())ですので、websphereのデバッグ情報は存在しません。 Websphereに追加するには? Eclipseで同じアプリケーションを実行すると、うまく動作します。なぜなら、Eclipseのクラスファイルでは、デバッグ情報が存在するからですか? – Aiden

答えて

2

感謝は、コンパイラで確かでした。 paranamerやコード自体に問題はありませんでした。コンパイラのバグを修正しなければならなかった。

関連する問題