SSM遇到的报错:
问题1: org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full
出现在启动web项目时:
在artifact被deployed时失败,出现上述报错。
我的解决方案:
首先:在右侧maven-clean-install 再次重启tomcat
问题2:java.lang.NoClassDefFoundError:org / springframework / util / function / SingletonSupplier
用debug查到问题出现在dao层,xml层无法解析。
但是xml和dao接口都没问题,一看bean中有属性的类型和数据库中的不符合,这就是问题所在。
解决:
统一数据库表中的类型和bean中对应的变量的类型。
问题3:session域内值的存取
10-Mar-2021 15:44:58.124 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
10-Mar-2021 15:44:58.738 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
10-Mar-2021 15:45:13.658 淇℃伅 [http-nio-8042-exec-5] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet ‘dispatcherServlet’
10-Mar-2021 15:45:16.439 涓ラ噸 [http-nio-8042-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [dispatcherServlet] in context with path [/RecruitSystem_20210302_war] threw exception [Expected session attribute ‘username’] with root cause
org.springframework.web.HttpSessionRequiredException: Expected session attribute ‘username’
at org.springframework.web.method.annotation.ModelFactory.initModel(ModelFactory.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:849)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:777)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:881)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol
C
o
n
n
e
c
t
i
o
n
H
a
n
d
l
e
r
.
p
r
o
c
e
s
s
(
A
b
s
t
r
a
c
t
P
r
o
t
o
c
o
l
.
j
a
v
a
:
810
)
a
t
o
r
g
.
a
p
a
c
h
e
.
t
o
m
c
a
t
.
u
t
i
l
.
n
e
t
.
N
i
o
E
n
d
p
o
i
n
t
ConnectionHandler.process(AbstractProtocol.java:810) at org.apache.tomcat.util.net.NioEndpoint
ConnectionHandler.process(AbstractProtocol.java:810)atorg.apache.tomcat.util.net.NioEndpointSocketProcessor.doRun(NioEndpoint.java:1506)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor
W
o
r
k
e
r
.
r
u
n
(
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
j
a
v
a
:
617
)
a
t
o
r
g
.
a
p
a
c
h
e
.
t
o
m
c
a
t
.
u
t
i
l
.
t
h
r
e
a
d
s
.
T
a
s
k
T
h
r
e
a
d
Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread
Worker.run(ThreadPoolExecutor.java:617)atorg.apache.tomcat.util.threads.TaskThreadWrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
问题4:多表联合查询时,mapper配置文件配置resultMap时主键配错了!!!
(幸运的是,我现在的主键都不是自增id,如果设定为自增id这里怎么解决啊???)
问题5:jsp跳转controller路径中根目录无法解析
甚至出现了好笑的情况:PAGES文件夹下有a.jsp和b.jsp两个页面,这两个页面里有一模一样的href超链接,为了在跳转时去掉PAGES所以要加上根目录路径。结果:a.jsp可以跳转到该controller,b.jsp报错404。
原因:web-app版本2.3情况下会出现这问题。
解决:升级web-app版本到4.0。在web.xml的头部改为:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
问题6:org.apache.ibatis.session.defaults.DefaultSqlSession@674419ed] was not registered for sy
报错500:
讲的是数据库相关问题,没连接上。
经过shut down tomcat、clean、install、start tomcat还是没用之后,查到需要看一下服务里mysql到底有没有启用。。一看果然“已停止”。就nm离谱。
解决:打开任务管理器-服务-找到数据库-修改状态即可,如下图。
问题7:在dao层mapper配置文件中配置resultMap时标签飘红,鼠标放在上面有提示如下:
问题:collection和association属性位置反了,应该和domain层属性先后顺序一致。
解决:交换collection和association的位置,即可!
问题7
报错:500
Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement
仔细看报错原因:
A query was run and no Result Maps were found for the Mapped Statement ‘com.demo.dao.DiaryDao.findDiaryByStu’.
初步推测:mapper.xml中没写resultType。。一看果然没写,补上。重新运行成功。
问题8:
500报错:参数有问题 参数需要1个但你传了2个那种报错 都看得懂但是找不到问题
mapper.xml里sql不要注释掉!要删掉!!注释有时没识别是注释掉的,所以会有2个参数…