天天看点

【持续更新】SpringCloud 学习之异常解决办法总结

快速导航

        • java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder
        • com.jcraft.jsch.JSchException: Auth fail
        • 关于 alibaba nacos 注册成功无法查看服务问题、nacos 无法启动问题
        • i.s.c.r.netty.NettyClientChannelManager : no available service 'null' found, please make sure registry config correct
        • io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server
        • io.seata.common.exception.FrameworkException: connect failed, can not connect to services-server.
        • java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]
        • com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens

java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder

原因: Springboot 与 Springcloud 版本冲突问题

解决: Springboot 与 Springcloud 版本对应关系可以去spring官网查看

com.jcraft.jsch.JSchException: Auth fail

Cannot clone or checkout repository
           

原因: 无权限操作,检查用户名和密码

解决: 输入正确的用户名和密码,只有

uri

采用

https

的方式才需要配置用户名和密码,如下图所示:

【持续更新】SpringCloud 学习之异常解决办法总结

关于 ssh 的配置参数官网: Git SSH configuration using properties

【持续更新】SpringCloud 学习之异常解决办法总结

关于 alibaba nacos 注册成功无法查看服务问题、nacos 无法启动问题

原因: Spring Cloud 、Spring Boot 和 Spring Cloud Alibaba 版本不一致导致

**解决: ** 参考官网

【持续更新】SpringCloud 学习之异常解决办法总结
【持续更新】SpringCloud 学习之异常解决办法总结

i.s.c.r.netty.NettyClientChannelManager : no available service ‘null’ found, please make sure registry config correct

保证 seata.tx-service-group 值与 seata.service.vgroup-mapping 中的 key 一致,见如下截图
           
【持续更新】SpringCloud 学习之异常解决办法总结

io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server

io.seata.common.exception.FrameworkException: connect failed, can not connect to services-server.

解决:

1. 查看nacos配置列表,seata配置是否已经导入成功
2. 查看nacos服务列表,serverAddr是否已经注册成功
3. 检查client端的registry.conf里面的namespace,registry.nacos.namespace和config.nacos.namespace填入nacos的命名空间ID,默认"",server端和client端对应,namespace 为public是nacos的一个保留控件,如果您需要创建自己的namespace,最好不要和public重名,以一个实际业务场景有具体语义的名字来命名
4. nacos上服务列表,serverAddr地址对应ip地址应为seata启动指定ip地址,如:sh seata-server.sh -p 8091 -h 122.51.204.197 -m file
启动时一定要指定启动ip,另外不要指定127.0.0.1
6. 查看seata/conf/nacos-config.txt 事务分组service.vgroupMapping.trade_group=default配置与项目分组配置名称是否一致
7. telnet ip 端口 查看端口是都开放,以及防火墙状态
           

java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]

java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]
	at io.netty.util.NettyRuntime$AvailableProcessorsHolder.setAvailableProcessors(NettyRuntime.java:51)
	at io.netty.util.NettyRuntime.setAvailableProcessors(NettyRuntime.java:87)
	at org.elasticsearch.transport.netty4.Netty4Utils.setAvailableProcessors(Netty4Utils.java:83)
	at org.elasticsearch.transport.netty4.Netty4Transport.<init>(Netty4Transport.java:113)
	at org.elasticsearch.transport.Netty4Plugin.lambda$getTransports$0(Netty4Plugin.java:86)
	at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:186)
	at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:280)
	at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:128)
	at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:114)
	at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:104)
	at com.gridsum.zhmsapi.config.EsConfig.getTransportClient(EsConfig.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 70 common frames omitted
           

解决办法:

在 bean 中 set 前加入下面代码或在启动类main方法最前加入

System.setProperty("es.set.netty.runtime.available.processors", "false");
           

com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens

Exception in thread "main" org.springframework.web.client.RestClientException: Error while extracting response for type [class com.zsh.extension.model.ResponseBodyResult] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens; nested exception is com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (PushbackInputStream); line: 1, column: 2]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:119)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:998)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:981)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:741)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:674)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:583)
at com.zsh.settlement.controller.SettBillController.main(SettBillController.java:67)
Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens; nested exception is com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (PushbackInputStream); line: 1, column: 2]
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:252)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:228)
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:104)
... 6 more
Caused by: com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (PushbackInputStream); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1840)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:712)
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:690)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd(UTF8StreamJsonParser.java:2975)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:715)
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4340)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4189)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3258)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:240)
... 8 more

           

原因: restTemplete 不支持 gzip 解压

解决办法:

  • 方案一:检查请求头中是否存在 Accept-Encoding : gzip ,如果有,可去掉
  • 方案二:检查 Nginx 是否配置了 gzip 压缩 json ,如果有,可去掉
  • 方案三:
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
           
参考: https://stackoverflow.com/questions/34415144/how-to-parse-gzip-encoded-response-with-resttemplate-in-spring-web

继续阅读