2016-12-06 30 views
0

私は、実行に長時間(約5時間)かかるSpring Boot 1.4.2を使用してバッチ処理プログラムを開発しました。私が春のフレームワークにいくつかの依存関係が欠落していますように思わ

20:49:01.324 ERROR o.s.boot.SpringApplication - Application startup failed 
java.lang.NoClassDefFoundError: org/springframework/util/StopWatch$TaskInfo 
    at org.springframework.util.StopWatch.stop(StopWatch.java:146) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) 
    at com.example.Main.main(Main.java:25) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58) 
Caused by: java.lang.ClassNotFoundException: org.springframework.util.StopWatch$TaskInfo 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 13 common frames omitted 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58) 
Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/SpringBootExceptionHandler 
    at org.springframework.boot.SpringApplication.getSpringBootExceptionHandler(SpringApplication.java:903) 
    at org.springframework.boot.SpringApplication.registerLoggedException(SpringApplication.java:850) 
    at org.springframework.boot.SpringApplication.reportFailure(SpringApplication.java:840) 
    at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:816) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) 
    at jp.co.cyberagent.leeds.article_batches.ArticleBatchesApplication.main(ArticleBatchesApplication.java:25) 
    ... 8 more 
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringBootExceptionHandler 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 16 more 

が、私は本当に必要なのか分からない:プログラムが起動してから約5時間が経過した後、それは以下のエラーメッセージを表示して実行を終了します。

私のbuild.gradleです。

buildscript { 
    ext { 
     springBootVersion = '1.4.2.RELEASE' 
    } 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'org.springframework.boot' 

jar { 
    baseName = 'article-batches' 
} 
sourceCompatibility = 1.8 
targetCompatibility = 1.8 

repositories { 
    mavenCentral() 
    maven { 
     url "https://maven.ca-tools.org/content/groups/public/" 
    } 
} 


dependencies { 
    compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1') 
    compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.7' 
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.40' 
    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.2' 
    compile group: 'org.mybatis', name: 'mybatis-typehandlers-jsr310', version: '1.0.1' 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

答えて

0

私は自分でこの問題を解決しました。私のメインプロセスはCommandLineRunner#runメソッドで書かれていましたが、それは別の質問でthis commentと言うように、runメソッドにメインプロセスを書くのは間違った方法です。

私はコメントに続き、以下のような私の主なプロセスを書きました。そして問題はなくなりました。

@SpringBootApplication 
public class Main { 

    public static void main(String[] args) { 
     final ConfigurableApplicationContext context = SpringApplication.run(Main.class, args); 
     final AppBean app = context.getBean(AppBean.class); 
     app.run(args); 
    } 
} 
0

1.4.1に春ブーツ1.4.2を変更してください。

新しいバージョンにはいくつか問題があるようです。

+0

回答していただきありがとうございますが、残念ながら動作しませんでした... – umainyosu

関連する問題