Spring cloud Q&A
阿新 • • 發佈:2019-02-06
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的專案
<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>並列
解決:需要在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>並列