Spring Cloud起動エラー-java.lang.NoSuchMethodErr

7715 ワード

最近はプロジェクトの一つの機能をmicroserviceに設計したいです.システム部品の結合度を下げて、後期メンテナンスと拡張に便利です.これまでmicroserviceに触れたことがありませんでしたが、microserviceはここ二年間比較的に人気があります.技術者としては常に新しい技術を振り回すことが好きなので、インターネットでquick starterを探すことにしました.https://spring.io/blog/2015/07/14/microservices-with-spring.
文の手順によって、まずサービス登録項目を作成する必要があります.本文で提示されたガイドはとても簡潔で、自分でspring boot projectを新築しました.copyはPOM構成を提供しました.その結果、運行時に下記のエラーに遭遇しました.
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:161)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:102)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:68)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:358)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243)
    at demo.ms.robossliu.demo.DemoApplication.main(DemoApplication.java:14)
特に最初の行の情報は、意味不明なこの方法の誤りなしを提示しているようです.Spring bootフレームの多くのコンポーネントは依存注入(DI)に基づいています.一部のエラーはコンパイル時に検出されないかもしれません.運転中だけ露出します.この方法がないと提示された以上、必ずあるコンポーネントに問題があります.バージョンが違うかどうか.
あまり考えもしませんでした.直接ビッグしてみました.(googleを使いたいですが、確かに遅いです.)いくつかのstackover flowの記事を見ましたが、基本的にカバンの間にある互換性の問題だと断定できます.このコピーから出たPOMファイルを自分で確認しました.

       org.springframework.boot
       spring-boot-starter-parent
       2.0.0.RELEASE
   

   
       
           
           org.springframework.boot
           spring-boot-starter
       

       
           
           org.springframework.boot
           spring-boot-starter-web
       

       
           
           org.springframework.cloud
           spring-cloud-starter
       

       
           
           org.springframework.cloud
           spring-cloud-starter-eureka-server
       
   

  
   
       
           
               org.springframework.cloud
               spring-cloud-dependencies
               Edgware.SR3
               pom
               import
           
       
   
自分が使っているのはspring boot 2.0バージョンで、spring cloudはEdgware.SR 3バージョンを使っていますが、まさか両者の衝突ですか?Edgware.SR 3はどのバージョンのspring cloudと依存のspring bootバージョンなのか、自分ではよく分かりません.spring cloud公式サイトを開けたら、Edgware.SR 3バージョンはspring boot 1.5.xに依存していることが分かりました.このように見ると、この二つのコンポーネントのバージョンが衝突しているので、解決方法も簡単です.あるいはspring bootバージョンを下げたり、spring cloudバージョンをアップグレードしたりします.「新技術はいつもより良い」というコンセプトを持ちながら、スプリント・クラウドを最新バージョンのFinchleyにアップグレードすることを決断しました.POMファイルを修正して、コンパイルして実行するのは全部OKです.
修正後のPOMファイルは以下の通りです.参考にしてください.


    4.0.0
    demo.ms.robossliu
    demo
    0.0.1-SNAPSHOT
    jar
    demo
    Demo project for Spring Boot
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.0.RELEASE
        
    
    
        UTF-8
        UTF-8
        1.8
    
    
        
            org.springframework.boot
            spring-boot-configuration-processor
            2.0.0.RELEASE
        
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.cloud
            spring-cloud-starter-eureka-server
            1.4.4.RELEASE
        
        
            org.springframework.cloud
            spring-cloud-starter-config
        
        
            org.springframework.cloud
            spring-cloud-starter-eureka
            1.4.4.RELEASE
        
    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.BUILD-SNAPSHOT
                pom
                import
            
        
    
    
        
            spring-snapshots
            Spring Snapshots
            https://repo.spring.io/libs-snapshot
            
                true
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin