現象:服務端啟動正常,瀏覽器訪問服務端可以讀取到配置文件,但感覺怪怪的,別人都是json格式,我的是xml格式的。問題是客戶端配置文件寫上服務端地址后,一直起不來,日志信息顯示加載配置文件的環境里不能識別我想讀取的字段,百度上各種方式都試過了,包括{applecation}{profile}對應 等等,沒有效果。
解決方式:網上找了2、3天也沒能解決。看來是沒有人遇到我的問題,應該是低級錯誤。於是我拋棄舊的環境(里面模塊太多,包括eureka、feign、ribbon、zuul、hystrix等),從新創建一個項目,只有兩個module(config-server、config-client),config-server里一個依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
config-client里一個依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
,把之前老環境的配置文件copy過來,先啟動server,正常。然后啟動client,正常。
說明我的配置文件沒問題,問題在於各種依賴引入,可能導致了jar包沖突。
回到原來項目,將父pom的各種依賴分類,分別遷移到各個子模塊,問題解決。
結論:由於我偷懶,不管哪個子模塊用到的依賴,我統一放到了父pom里,子pom繼承父pom,這樣導致所有子模塊把有用沒用的jar包都依賴進來了,導致未知沖突。看來pom只能放真
正的公用依賴,不能隨便亂放呀!