1、刚开始导入项目时报错
问题分析:一般是maven包没下载下来。一开始导入项目时,要用外网,公司内网一般下载不下来maven包。oracle的包在公网下载不到,可以连接公司内部的私服去下载
2、如何提取干净的工程源码
在项目中右键git bash,输入mvn clean,然后删除.idea文件
3、找不到或无法加载主类
解决方法建议:把配置文件(.idea)删除,然后用导包重新配置
到项目的绝对路径删除配置文件,再重新导包(刚开始没有删除,反复导包还是没用)
4、报错:connection异常
首先检查本地访问目的ip的网络是否通畅
若网络是通的,检查工程中配置的ip和端口是否正确
5、导入项目时报错:Java程序包sun.misc不存在
原因:jdk版本问题
6、Spring Boot Application in default package
Spring Boot Application in default package less… (Ctrl+F1)
Inspection info: Checks Spring Boot Application Setup.
@SpringBootApplication used in default package
Redundant @ComponentScan declaration
Redundant @EnableAutoConfiguration declaration
New in 2018.2
是因为把main函数直接放在了java 目录之下,应放在java目录下的 package目录
7、查不到数据库表
1、首先看下数据库连接的配置对不对
2、在配置没问题的情况下,确认下数据库表是否存在
3、若数据库表存在,则可能是表名大小写的问题,核对项目和数据库表的大小写是否一致
8、NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.web.client.RestTemplate' available
没有注入RestTemplate,需自己手动添加注入RestTemplate的配置
@Configuration
@ConditionalOnClass(value = {RestTemplate.class, HttpClient.class})
public class RestTemplateConfig {
@Value("${httpClient.maxTotalConnect:10}")
private int maxTotalConnect; //连接池的最大连接数默认为10
@Value("${httpClient.maxConnectPerRoute:200}")
private int maxConnectPerRoute; //单个主机的最大连接数
@Value("${httpClient.connectTimeout:2000}")
private int connectTimeout; //连接超时默认2s
@Value("${httpClient.readTimeout:10000}")
private int readTimeout; //读取超时默认10s
private ClientHttpRequestFactory createFactory() {
if (this.maxTotalConnect <= 0) {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(this.connectTimeout);
factory.setReadTimeout(this.readTimeout);
return factory;
}
HttpClient httpClient = HttpClientBuilder.create().setMaxConnTotal(this.maxTotalConnect)
.setMaxConnPerRoute(this.maxConnectPerRoute).build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(
httpClient);
factory.setConnectTimeout(this.connectTimeout);
factory.setReadTimeout(this.readTimeout);
return factory;
}
@Bean
@ConditionalOnMissingBean(RestTemplate.class)
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate(this.createFactory());
return restTemplate;
}
}
9、Java ConcurrentModificationException异常
对Vector、ArrayList在迭代的时候,如果同时对其进行修改(比如删除元素),就会抛出java.util.ConcurrentModificationException异常
10、Mybatis的Tag name expected的问题
mapper文件中写sql语句时提示Tag name expected,原因是因为xml不识别<号需要用特定转义符来表示<号
在 XML 中,一些字符拥有特殊的意义,如果把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。为了避免这个错误,用实体引用“<”来代替 "<" 字符,修改后如下:
在 XML 中,有 5 个预定义的实体引用: