Spring cloud Q&A

来源:互联网 发布:web前端开发 薪资知乎 编辑:程序博客网 时间:2024/06/06 14:08
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>并列