1.idea Module is not specified 異常處理
問題通常出現在:當我們由於項目未知異常選擇手動刪除idea項目配置,並重啓idea嘗試使其生效時。
在File -> Project Structure -> Modules查看Modules信息,如果有刪除,然後刪掉項目重新建立即可。
2.Could not autowire. No beans of 'WeiXinAppServiceFeign' type found. less... (Ctrl+F1)
Inspection info:Checks autowiring problems in a bean class.
Description:
Field weiXinAppServiceFeign in com.tx.servicemember.impl.MemberServiceImpl required a bean of type 'com.tx.servicemember.feign.WeiXinAppServiceFeign' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.tx.servicemember.feign.WeiXinAppServiceFeign' in your configuration.
嘗試了各種方法,最後是qq上的同學提供了有效信息,註解問題。最終查出來的問題是註解使用錯誤:
啓動類上:@FeignClients 更正爲@EnableFeignClient
接口實現類上:增加@Service
3.Swagger2異常:java.lang.NumberFormatException:For input string:""
2019-01-07 18:23:03.830 WARN 21940 --- [nio-8080-exec-6] i.s.m.p.AbstractSerializableParameter : Illegal DefaultValue for parameter type integer
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_171]
at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_171]
at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_171]
at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]
at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:654) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) [jackson-databind-2.6.5.jar:2.6.5]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) [jackson-databind-2.6.5.jar:2.6.5]
解決方法:pom.xml中引入包
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.21</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.21</version>
</dependency>
4.The bean 'proxyRequestHelper', defined in class path resource
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-10-11 14:30:35.757 ERROR 31656 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'proxyRequestHelper', defined in class path resource [org/springframework/cloud/netflix/zuul/ZuulProxyAutoConfiguration$NoActuatorConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/cloud/netflix/zuul/ZuulProxyAutoConfiguration$EndpointConfiguration.class] and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
出現此類錯誤是因爲原因是SpringCloud與SpringBoot版本不一致。在pom.xml中增加
<!--管理依賴-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
5.Docker狀態一直是Restarting,啓動失敗如何解決
查看日誌,仔細查看問題,很多時候錯誤的提示不在第一行也不在最後一行,需要仔細去查找
docker logs 1d3e129052c2
原來是內存溢出造成docker進程被殺死,查看內存發現只有509M,一般容器需要2G的內存,只能升配內存了。
//查看服務器內存使用情況
free -mh
6.解決maven上傳jar包報錯:Return code is: 400 , ReasonPhrase:Repository version policy
出現場景:將maven項目打成jar包,發佈到maven私有倉庫時,報錯Return code is: 400 , ReasonPhrase:Repository version policy;
原因:上傳的jar包,版本信息中包含snapshot;
解決辦法:<version>節點中去掉snapshot;
<groupId>com.hpm.blog</groupId>
<artifactId>spring-boot-blog</artifactId>
<!--<version>0.0.1-SNAPSHOT</version>-->
<version>0.0.1</version>
7.springboot整合阿波羅,Located meta server address http://134.175.193.156:8080 for env UNKNOWN from com.ctrip.framework.apollo.internals.DefaultMetaServerProvider
-Denv=DEV
Init Apollo Local Config failed - namespace: application, reason: Load config from local config failed! [Cause: Cannot read from local cache file C:\opt\data\dhcc-shop-service-weixin\config-cache\dhcc-shop-service-weixin+default+application.properties].
Long polling failed, will retry in 1 seconds. appId: 8000000001, cluster: default, namespaces: application, long polling url: http://172.16.0.16:8080/notifications/v2?cluster=default&appId=8000000001&ip=172.18.40.193¬ifications=%5B%7B%22namespaceName%22%3A%22application%22%2C%22notificationId%22%3A-1%7D%5D, reason: Could not complete get operation [Cause: connect timed out]
Long polling failed, will retry in 1 seconds. appId: 8000000001, cluster: default, namespaces: application, long polling url: http://172.16.0.16:8080/notifications/v2?cluster=default&appId=8000000001&ip=172.18.40.193¬ifications=%5B%7B%22namespaceName%22%3A%22application%22%2C%22notificationId%22%3A-1%7D%5D, reason: Could not complete get operation [Cause: connect timed out]
騰訊雲服務器得固定IP,EIP產品纔可以在本機查看外網IP地址,強烈建議換阿里雲,一個坑三天都在裏面爬不出來
8.Consider defining a bean of type 'tx.common.core.utils.RedisUtil' in your configuration.
tx.common.core.utils.RedisUtil'接口與對應實現類放在了與控制器所在包的同一級目錄下,這樣的@Component註解自然是無法被識別的
有包衝突導致的,移入到同一個項目工程下。
9.The bean 'app-tx-weixin.FeignClientSpecification', defined in null, could not be registered
多個接口上的@FeignClient(“相同服務名”)會報錯,overriding is disabled
,即出現了相同的Bean名。
spring.main.allow-bean-definition-overriding=true
後面發現是這個,是因爲Springcloud和Springboot版本不兼容
<!-- 管理依賴 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
10.關於idea 中使用mybastis報出 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
如果是多個工程合併成一個工程的按如下步驟來:
1.搜索源工程中的xxxMapper.xml,看看這些文件是不是都copy到新工程對應的目錄下
2.檢查xml中的<mapper namespace="com.xxx.xxx" type="com.xxx.xxx"包路徑是否正確
如果是自己加的mapper.xml,按如下步驟:
1.檢查xml文件所在的package名稱是否和interface對應的package名稱一一對應
2.檢查xml文件的namespace是否和xml文件的package名稱一一對應
3.檢查函數名稱能否對應上
4.去掉xml文件中的中文註釋
5.隨意在xml文件中加一個空格或者空行然後保存
6.dao接口與xml的文件名不一致,接口名與Mybatis的映射文件名一定要一模一樣。
7.*Mapper.xml文件放到resource文件夾下管理
11.Class.forName提示java.lang.ClassNotFoundException:
SpringBoot運行後一直提示java.lang.ClassNotFoundException:這個錯誤。當我傳入的字符串是 完整的包名+類名,後面仔細比對發現傳入的類名與實際不相符一定要仔細檢查。
12.Exceptioninthread"main"java.lang.ClassNotFoundsException的問題
在部署Maven項目時報這個錯誤,是因爲maven導出jar包時沒有指定出口類,需要在pom文件中加入配置
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.easytoolsoft.easyreport.web.WebApplication</mainClass>
</configuration>
</plugin>