开发问题记录

1、刚开始导入项目时报错

问题分析:一般是maven包没下载下来。一开始导入项目时,要用外网,公司内网一般下载不下来maven包。oracle的包在公网下载不到,可以连接公司内部的私服去下载

2、如何提取干净的工程源码

在项目中右键git bash,输入mvn clean,然后删除.idea文件

3、找不到或无法加载主类

解决方法建议:把配置文件(.idea)删除,然后用导包重新配置


image.png

到项目的绝对路径删除配置文件,再重新导包(刚开始没有删除,反复导包还是没用)


image.png

image.png

4、报错:connection异常

首先检查本地访问目的ip的网络是否通畅
若网络是通的,检查工程中配置的ip和端口是否正确

5、导入项目时报错:Java程序包sun.misc不存在

image.png

原因:jdk版本问题


image.png

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、查不到数据库表

image.png

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不识别<号需要用特定转义符来表示<号

image.png

在 XML 中,一些字符拥有特殊的意义,如果把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。为了避免这个错误,用实体引用“<”来代替 "<" 字符,修改后如下:

image.png

在 XML 中,有 5 个预定义的实体引用:

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容