2016-03-11 15 views
6

私はSpring Batchの初心者です。私は、このバグのHelloWorldを作成するためにこのguideに従っています。私はnew ClassPathXmlApplicationContext("...")使用してアプリケーション・コンテキストを取得しようとしていたmainメソッドを持つクラスでは、IDEは、というエラーメッセージが表示さ"未処理例外BeansException型"を解決する方法

未処理の例外タイプIは私が持っているにもかかわらず、そのエラーを解決することはできません

BeansExceptionすべてのタイプの例外をキャッチするcatchブロック。以下のコードブロックを参照してください。

public static void main(String args[]) { 
     try { 
      //error message appears here 
      AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext("simpleJob.xml"); 

      JobParametersBuilder builder = new JobParametersBuilder(); 
      builder.addString("Date", "12/02/2011"); 
      jobLauncher.run(job, builder.toJobParameters()); 

      JobExecution jobExecution = jobRepository.getLastJobExecution(job.getName(), builder.toJobParameters()); 
      System.out.println(jobExecution.toString()); 
     } 
     catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

その後、私はimport org.springframework.beans.BeansException;によってそれを解決しようとしたとBeansExceptionをキャッチしようとしました。未処理のBeansExceptionエラーは解決されましたが、別のエラーメッセージが表示されました:

BeansException型は例外ではありません。例外タイプ は、以下のコードブロックを参照してくださいスロー可能

のサブクラスでなければなりません:

public static void main(String args[]) { 
     try { 
      AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext("simpleJob.xml"); 

      JobParametersBuilder builder = new JobParametersBuilder(); 
      builder.addString("Date", "12/02/2011"); 
      jobLauncher.run(job, builder.toJobParameters()); 

      JobExecution jobExecution = jobRepository.getLastJobExecution(job.getName(), builder.toJobParameters()); 
      System.out.println(jobExecution.toString()); 
     } 
     //error message appears here 
     catch(BeansException e) { 
      //do something 
     } 
     catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

このエラーを解決する正しい方法は何ですか?

その他の注意:BeansExceptionという名前の独自のクラスはありません。

編集:スタックトレース(エラーオプションを進める):質問へのケンBekovのコメントに

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    No exception of type BeansException can be thrown; an exception type must be a subclass of Throwable 

    at SpringBatchHelloWorld.BatchLauncher.main(BatchLauncher.java:29) 
+0

チェックの同じバージョンを使用して、クリーンビルドを実行するには、 '春-コア4.2.4.RELEASEのようなものを持っています.jar'をクラスパスに追加します。もちろん、あなたの実際のバージョンは '4.2.4 'でなくてはなりません。 –

+0

私はspring-batch-core-3.0.6.RELEASE.jarを持っています。 spring-batch-infrastructure-2.2.0.RELEASE.jar; spring-context-4.2.4.RELEASE.jar; spring-beans-4.2.4.RELEASE.jar。注意:私は 'org.springframework.beans 'しかインポートできません。私がspring-beans-4.2.4.RELEASE.jarを組み込んだ後にBeansException'を実行しました – karansky

+0

私はspring-core-4.2.4.RELEASE.jarをインクルードする必要がありますか? – karansky

答えて

8

おかげで、私はこの問題を解決することができたと私は正式にこの質問を与えるために、このソリューションを策定しました答え。クレジットはKen Bekovに与えられるべきです。

解決策: 問題は、ビルドパスに含まれる.jarファイルのバージョンが異なるためです。含まれるはずの.jarファイルは、spring-context-4.2.5.RELEASE.jar,spring-beans-4.2.5.RELEASE.jarおよびspring-core-4.2.5.RELEASE.jarです(同じバージョン番号 - 4.2.5に注目してください)。

spring-batch-core-3.0.6.RELEASE.jarspring-batch-infrastructure-3.0.6.RELEASE.jarなどは、必ずしも同じバージョン番号(4.2.5)を持つ必要はありません。正しい.jarファイルが含まれていた後new ClassPathXmlApplicationContext("...");

0
  1. は、既存のjarファイルを削除するために

    することはあっても「未処理の例外タイプBeansException」というエラーメッセージが表示されません.m2の\リポジトリ\組織\ springframeworkフォルダを形成。

  2. 春-context.jar、春-beans.jarと春-core.jar
関連する問題