开发过程中遇到的问题记录
异常
Mapped URL path [/**] onto handler
访问Mapper的地址不正确
[/**] onto handler
2019-10-21 11:36:17,647 INFO[org.springframework.web.servlet.handler.AbstractUrlHandlerMapping:341]- Mapped URL path
[/**] onto handler
'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
null
syntax error: ERROR. token : WHEN, pos : 100
syntax error 一般是SQL语法有问题,
Caused by: java.sql.SQLException: sql injection violation, syntax error: ERROR. token : WHEN, pos : 100
下方出错的地方有两处: case when 中多了一个“,” 和一个“()”
( CASE
(
WHEN ( score>=0.10 AND score < 0.70 ) AND info_type IN('C0206','C0205','C0202') THEN 1
,
WHEN ( score>=0.10 AND score < 0.70 ) AND info_type IN('C0206','C0205','C0202') THEN 1
)
END )
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scoringTestDtoa' defined in file
[D:\runWorker03\trunk\busdata_BMWCS\busdata_service\target\classes\com\tsing\dao\system\score
\ScoringTestDtoa.class]: Invocation of init method failed; nested exception is
java.lang.RuntimeException: java.lang.RuntimeException:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
异常 --原因是info_type 与后面缺少了“,”
### SQL: SELECT t_sm01.contract_id ,t_sm01.score,t_bl.info_type
( CASE WHEN ( score>=0.10 AND score < 0.70 )
AND info_type IN('C0206','C0205','C0202') THEN 1 ....
com.alibaba.fastjson.JSONException: exepct ‘[’, but {
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.tsing.dao.system.score.ScoringDao.BaseResultMap
nested exception is com.alibaba.fastjson.JSONException: exepct '[', but {
直接翻译过来就是,异常出现在 中括号 “[” 的地方,我要的是中括号,你却给我一个 花括号 “{”,出现不匹配的类型为XXXX.java
换言之,就是我要的是一个List(中括号 “[” )的XXXX的java实体,你却给我一个对象类型的数据
检查Json的格式
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map XXX method
Ambiguous (模糊不清的、有歧义的)
错误原因:@RequestMapping("/XXX/XXX")里面的内容重名
Spring中controller中使用private和public的问题
如果controller层方法需要调用注入的bean或者service层,那么只能使用public。private是无法加载自动加载bean对象的。
Spring Context 容器中没有 XXX.xml文件
spring boot启动报Error creating bean with name ‘XXX’ defined in file异常
1、namespace对应的名字不对
2、有些靠ioc注入的类没有加@service之类生成bean的注解
3、mapper.xml中#{}里没有写参数名
Could not load [com.tsing.service.inter.system.auth.IDepartmentService]
当应用程序卸载时,并不会关闭所有的线程。当tomcat已经关闭了其类加载器后,一些线程依然会继续运行,这样就导致出错,这些错误就会被到日志文件里。
解决方法是:修改tomcat目录下conf文件夹下的server.xml, 在标签添加子元素找到标签,把reloadble的属性值设为:reloadable=“false”。
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用 ,也就是热部署。 有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。