分布式微服務SpringCloud 、Dubbo常見異常匯總


(1)java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0  

在請求Facade 或是其他 interface時,@RequestParam("phone") String phone,這個參數一定要必填,不可省略。

 

(2)Consider defining a bean of type 'redis.RedisUtil' 

需要在該項目的啟動類中進行全表掃描注入 (basePackages = "com.ballon.wonmore.*")

(3)Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `boolean` out of START_OBJECT token

這種一般是返回值有問題,返回值對不上 或是 多層封裝了,程序不能自動識別,比如說 ResultMessage套用ResultMessage

 

(4)feign.codec.EncodeException: No qualifying bean of type 'org.springframework.boot.autoconfigure.http.HttpMessageConverters' available: expected at least 1 bean which qualifies as autowire candidate.

@RequestMapping(value = "/isInvalidToken", method = RequestMethod.GET, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public boolean isInvalidToken(@RequestParam("token") String token) {
return authService.isInvalidToken(token);
}

 

(5)Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client

 

(6)feign.codec.DecodeException: No qualifying bean of type 'org.springframework

解決方案:將feignHttpMessageConverter  進行Decoder

@Configuration
public class FeignConfig {

    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

    @Bean
    public Decoder feignDecoder() {
        return new ResponseEntityDecoder(new SpringDecoder(feignHttpMessageConverter()));
    }

    public ObjectFactory<HttpMessageConverters> feignHttpMessageConverter() {
        final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(new PhpMappingJackson2HttpMessageConverter());
        return new ObjectFactory<HttpMessageConverters>() {
            @Override
            public HttpMessageConverters getObject() throws BeansException {
                return httpMessageConverters;
            }
        };
    }

    public class PhpMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
        PhpMappingJackson2HttpMessageConverter(){
            List<MediaType> mediaTypes = new ArrayList<>();
            mediaTypes.add(MediaType.valueOf(MediaType.TEXT_HTML_VALUE + ";charset=UTF-8")); //關鍵
            setSupportedMediaTypes(mediaTypes);
        }
    }

}

  

(7)org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'null' in

這種異常一般來說是因為客戶端服務器漏寫了注解 比如 @RequestBody 

(8)Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

方案一 (解決原因1)

排除此類的autoconfig。啟動以后就可以正常運行。

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}) 
方案二 (解決原因2)

在application.properties/或者application.yml文件中沒有添加數據庫配置信息.

 

(9)允許bean 重復定義

spring.main.allow-bean-definition-overriding=true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM