Bug集中营

  这篇blog作为自己以后使用方便创建,分类整理一路上遇到的各种bug,如果以后遇到相同或相似的问题,有据可查。由于有比较多的bug之前未来得及整理,所以这里记录的可能仅仅只是一小部分bug,或者还包含开始的一些很初级的bug,但是随着时间的延长,这篇blog会越来越长,以后遇到难以处理的bug,一律在此登记。

maven

1.不清楚maven的项目结构,配置文件没有放置在resource文件夹下导致报错。

2.使用IDEA的命令行操作maven命令,控制台打印信息出现中文乱码,需修改IDEA的相关配置:在setting中的maven设置的runner中VM Options填入“-Dfile.encoding=UTF-8”,然后重启IDEA。

3.maven项目出现GBK编码错误。
解决方案:pom文件中配置插件,如下,

<!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->  

 <properties>  
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
 </properties>  

或者添加插件

<plugin>  
    <artifactId>maven-compiler-plugin</artifactId>  
    <configuration>  
        <source>1.6</source>  
        <target>1.6</target>  
        <!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码,通过encoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->  
        <encoding>utf8</encoding>   
    </configuration>  
</plugin>  

4.使用上述插件可能会遇到报错:-source 1.5 中不支持 diamond 运算符 [ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
所以需要修改如下。

<plugin>  
   <groupId>org.apache.maven.plugins</groupId>  
   <artifactId>maven-compiler-plugin</artifactId>  
   <version>3.6.1</version>  
   <configuration>  
     <source>1.7</source>  
        <target>1.7</target>  
      <encoding>UTF-8</encoding>  
    </configuration>  
</plugin>  

5.pom文件中的<packaging>标签,如果参数为jar或war是可以正常打出对应的包的,但如果为pom的话,使用mvn install命令会打出一个聚合包,是将所有的子模块(Module)打成一个包。

Mysql

1.使用Navicat远程连接数据库报错2003,防火墙或安全组问题,需要检查远程连接的端口是否开启,防火墙规则以及安全组规则是否允许该端口远程连接。

2.Linux下启动mysql出现报错信息:ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
查找错误日志:unknown variable ‘thread_concurrency=8’;修改配置文件my.cnf,注释该行。

3.连接数据库时,总会出现一条关于SSL的警告信息,对于程序运行没有影响,如果想要消除,需要在连接池配置中的url属性加上“useSSL=false”。

4.使用中文关键字查询的时候查询不到想要的结果,经查询,是由于中文乱码问题,解决办法是在连接池配置中的url属性加上“characterEncoding=utf-8”。

5.在url属性添加多条限制的时候使用“&”不奏效怎么办,使用“&amp;”。
ps:关于如何在网页上显示“&amp;”,因为html会直接转义为“&”,那么我们在书写时就需要这样书写“&amp;amp;”。而我在打最后的字符串时,其实又多了一层嵌套。2333.

6.报错:Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
因为连接池的关系;简单说,连接池一直在等着被使用,但是没人用,然后mysql就给关了,但是连接池又调用了,所以就报错了。

解决办法,修改等待时间
#vim /etc/my.cnf

[mysqld] wait_timeout=604800

jsp

1.jsp文件里的EL表达式取不出值
问题原因:
这里写图片描述
这个标签会忽略掉EL表达式(EL(ExpressionLanguage)目的:为了使JSP写起来更加简单。)

解决方案有两种:
1).将标签去掉,没问题了就
2).在jsp页面头加:<%@page isELIgnored=”false”%> 问题得以解决。
原因是<%@page isELIgnored=”false”%>的优先级高于web-app。

2.jsp页面的路径问题:有的时候使用web容器启动项目的时候,会出现直接用url访问不到的情况,这在jsp页面跳转的时候就是一个问题。
所以这里需要使用绝对路径${pageContext.request.contextPath},它可以获取到需要的项目名称,可以解决相关问题,一般涉及到跳转问题,都要加上这个绝对路径,除非是需要相对路径的时候不需要加它。

Spring及SpringMVC

1.关于Spring命名规范问题
这里写图片描述
如果写为xsi:schemalocation,然后出现报错
这里写图片描述
原因是Spring严格的命名规范,这里注意大小写。

2.SpringMVC的重定向问题:redirect重定向的问题,这里对于重定向的书写,return "redirect:/stus";一定要写/,不然就会出现拼接URL的现象。

3.对应的jsp页面里,form表单的action动作需要和方法的url对应,不然会报错。

4.Spring的bean和new不可混用,否则,new出来的东西会导致Spring的bean失效,无法自动装配,这个其实大概思考一下就理解了,不过这个错误偶尔还是会不注意。

spring boot

1.新手常见错误就是bean使用@Autowired注入失败的问题。
解决方案:需要注意的是,spring boot是从启动类(带有@SpringBootApplication的那个类)的所在包开始,向下扫描。也就是说你的bean文件是要在启动类所在包或其子包下才会被扫描到。参考

2.@RestController和@Controller的区别
解决方案:@RestController相当于@Controller+@ResponseBody;所以当我们如果在spring boot中使用jsp的时候,使用的应该是@Controller;而直接传输json的时候,使用@RestController更方便。

3.使用jpa时,定义实体类的时候,使用了hibernate框架,在自增id的处理上有问题,报错如下:

ERROR:could not read a hi value 
com.mysql.jdbc.exceptions.jdbc.MySQLSyntaxErrorException: Table ‘项目名称.hibernate_sequence’ doesn’t exist

解决方案:以为自动生成的注解问题,将@GeneratedValue修改为@GeneratedValue(strategy = GenerationType.IDENTITY).
问题解释链接

svn

1.svn更新报错:

Skipped 'xxx' -- Node remains in conflict

解决办法:

svn remove --force filename
svn resolve --accept=working  filename

然后再更新即可。

IDEA

1.webapp文件无法识别
解决办法:在Project Structure —> Facts中的Web Resource Directories中设置路径为自定义webapp的路径。参考




先整理到这,继续写别的,过段时间再继续更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值