1. 程式人生 > >Spring cloud Q&A

Spring cloud Q&A

1.Jdk版本問題: 報錯:Caused by: java.lang.UnsupportedClassVersionError: org/eclipse/jgit/api/TransportConfigCallback : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.7.0_79] 解決:安裝jdk1.8,spring cloud很多jar包依賴jdk1.8 2.eureka-server依賴名問題 報錯:Exception in thread "main" java.lang.NoclassDefFoundError:org/apache/commons/logging/LogFactory at org.springframework.boot.SpringAppliaction.<clinit>(SpringApplication.java:190) 解決:1.pom.xml新增依賴包 <!--增加eureka-server的依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> 或 2.將父類pom.xml的eureka移到相應子類的pom.xml <!-- 註冊中心 eureka:將服務新增到eureka的依賴包 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> 3.docker啟動服務拒絕
: 報錯:2017-08-08 05:49:11.991 ERROR 1 --- [ Thread-6] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused) 解決:有docker時指docker的埠8762,不是8761 eureka: client: serviceUrl: defaultZone: http://10.83.29.113:8762/eureka # 指定註冊中心的地址,有docker時指docker的埠 4.配置檔案讀取問題
報錯:Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'profile' in value "${profile}" 解決:配置檔案config-repository下檔案的使名。 1)檔案我字首必須與application.xml中的spring.application.name的名一樣: 如:application.xml中 spring: application: name: consumer-beehive 對應檔名為: consumer-beehive-dev.properties consumer-beehive-prd.properties 2)總結格式:${spring.application.name}-${spring.cloud.config.profile} 5.maven打包異常
: 報錯:Exception caught: NullPointerException 解決:pom.xml的plugin中去掉 <dockerHost>${docker.registry.url}</dockerHost> 6.無法通過Maven執行spring-boot的專案

解決:需要在eclipse上配置Spring Tool Suite (STS) for Eclipse,然後通過Run As -> Spring Boot App 來啟動。具體可參考網址

7.maven包使用出錯的問題

報錯:控制檯報“Description Resource Path Location Type Failure to transfer-----分割線,省略若干-----was cached in the local repository, resolution will not be reattempted until the update interval of spring-ext has elapsed or updates are forced. Original error: Could not transfer artifact”錯誤。

解決:在maven的本地倉庫中刪除相應的包。

8.spring-boot啟動失敗問題 報錯:Caused by: java.lang.ClassCastException: java.lang.UnsupportedClassVersionError cannot be cast to [Ljava.lang.Object; 解決:檢查application.yml中swagger的配置是否正確 9.spring-cloud jar包依賴問題 問題:spring-cloud相關依賴包在pom.xml裡寫了groupId,artifactId, 但不寫version 解決:spring-cloud管理依賴 <dependencyManagement>
        <dependencies>
            <!--依賴管理,用於管理spring-cloud的依賴-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
<!--放其他jar包的依賴-->    </dependencies>
注:1)spring-cloud-dependencies需要單獨被<dependencyManagement>管理 2)其分依賴包放在:另寫一個<dependencies>與<dependencyManagement>並列