2016-03-11 28 views
6

Jestem początkujący w Spring Batch. Postępuję zgodnie z tym guide, aby utworzyć HelloWorld of Spring Batch. W klasie metodą głównego kiedy próbuje uzyskać kontekstu aplikacji za pomocą new ClassPathXmlApplicationContext("..."), IDE pokazuje komunikat o błędzieJak rozwiązać problem "Nieobsługiwany wyjątek typu BeansException"

Unhandled typ wyjątku BeansException

nie mogę rozwiązać ten błąd chociaż mam blok catch, który przechwytuje wszystkie typy wyjątków. Zapoznaj się z bloku kodu poniżej:

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

Następnie próbowałem go rozwiązać przez import org.springframework.beans.BeansException; i próbował złapać BeansException. Chociaż nieobsługiwany błąd BeansException został rozwiązany, ale pojawił się kolejny komunikat o błędzie:

Nie można wykluczyć wyjątku typu BeansException; typ wyjątku musi być podklasą Throwable

Patrz bloku kodu poniżej:

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

Co to jest poprawny sposób, aby rozwiązać ten problem?

Uwaga dodatkowa: Nie mam własnej klasy o nazwie BeansException.

Edit: Ślad stosu (postępować z możliwością błędu):

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

Sprawdź, czy masz coś takiego jak 'wiosny podstawowej 4.2.4.RELEASE .jar' na ścieżce zajęć. Oczywiście, musi być twoja prawdziwa wersja zamiast '4.2.4'. –

+0

Mam spring-batch-core-3.0.6.RELEASE.jar; spring-batch-infrastructure-2.2.0.RELEASE.jar; wiosna-kontekst-4.2.4.RELEASE.jar; spring-beans-4.2.4.RELEASE.jar. Uwaga: mogę zaimportować tylko pliki 'org.springframework.beans.BeansException' po tym, jak dodałem spring-beans-4.2.4.RELEASE.jar – karansky

+0

czy muszę dołączyć spring-core-4.2.4.RELEASE.jar? – karansky

Odpowiedz

8

Dzięki komentarzach Kena Bekov do pytania, udało mi się rozwiązać ten problem i sformułowałem to rozwiązanie oficjalnie dać na to pytanie Odpowiedź. Napisy należy przekazać Kenowi Bekovowi.

Rozwiązanie: Problem spowodowany jest inną wersją plików .jar zawartych w ścieżce budowania. Pliki .jar, które należy uwzględnić, to: spring-context-4.2.5.RELEASE.jar, spring-beans-4.2.5.RELEASE.jar i spring-core-4.2.5.RELEASE.jar (należy zwrócić uwagę na tę samą wersję - 4.2.5).

Jeśli chodzi o spring-batch-core-3.0.6.RELEASE.jar, spring-batch-infrastructure-3.0.6.RELEASE.jar i inne, niekoniecznie muszą mieć ten sam numer wersji (4.2.5).

Po poprawne pliki .jar zostały uwzględnione, nie będzie nawet „nieobsługiwany typ wyjątku BeansException” komunikat o błędzie dla new ClassPathXmlApplicationContext("...");

0
  1. usuwać istniejące pliki słoiki tworzą .m2 \ repozytorium \ org \ folderze Spring Framework .
  2. zrobić czystą kompilację przy użyciu tej samej wersji wiosenno-context.jar, wiosna-beans.jar i wiosenno-core.jar
Powiązane problemy