【无法启动tomcat】
一开始我只关注到了这个报错,上网查找解决方案一直无果:
org.apache.catalina.core.StandardContext.listenerStart 配置应用程序监听器[org.springframework.web.context.ContextLoaderListener]错误
然后我去调整了web.xml配置文件的配置,却又爆出了这样的错误:
org.apache.catalina.LifecycleException: 无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext
却不知道真正的问题在于下面的Caused by:...
接下来又报了以下错误,清一色的ClassNotFoundException(不得不说,这个异常一般就是没导到包会报),后来发现原来是没导包到/WEB-INF下的/lib中,所以找不到类。
Caused by: java.lang.ClassNotFoundException: org.springframework.core.io.Resource
Caused by:java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextException
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.FatalBeanException
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
于是到Project Structure中,选中我要的一个一个包导入lib:
然后又有一个错误(吐槽自己菜还巨多错误,不过犯过的错误积累起来,下次也知道怎么解决的思路了),学了本专业以后,可以说是一天天的都在制造问题(写bug...),然后又不停地解决问题,对我这种急性子来说实在是需要一个冷静平和的心态,不过我现在已经对报错内心毫无波澜了,只想着赶紧找解决方案吧,然后才能继续走下一步。(题外话太多了,赶紧回来)
现在就成功启动tomcat了
[2022-04-27 08:17:45,830] Artifact spring_ssm:war exploded: Artifact is being deployed, please wait…
27-Apr-2022 08:17:46.885 信息 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext: initialization started
27-Apr-2022 08:17:48.515 信息 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext initialized in 1629 ms
27-Apr-2022 08:17:48.656 信息 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean Initializing Servlet 'DispatcherServlet'
27-Apr-2022 08:17:49.771 信息 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean Completed initialization in 1114 ms
[2022-04-27 08:17:49,790] Artifact spring_ssm:war exploded: Artifact is deployed successfully
[2022-04-27 08:17:49,790] Artifact spring_ssm:war exploded: Deploy took 3,960 milliseconds
27-Apr-2022 08:17:55.522 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\Tomcat\apache-tomcat-9.0.59\webapps\manager]
27-Apr-2022 08:17:55.715 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\Tomcat\apache-tomcat-9.0.59\webapps\manager]的部署已在[192]毫秒内完成
可是一开始进行实际的操作,又出了不少问题...
【启动tomcat以后】
这个就是mybatis出的问题了,其实每次报错给的提示非常清晰,这一次又一次地提醒我,不要忽视报错的信息,很可能其中就是解决问题的关键,可以求助的方面:①自己找错误(代码写错?配置错误?版本问题?...)②面向百度编程(找技术博客,如csdn,特别是①找到了错误的地方,但因为首次遇到该错误不知道怎么解决)③官方文档、帮助文档也很重要!
简而言之,就是两个bound的AccountMapper.xml和AccountMapper.java(interface)没有绑定成功,会根据xml配置中的命名空间去找该资源路径下是否有对应接口。
<mapper namespace="com.mapper.AccountMapper">
<!-- 具体方法代码 -->
</mapper>
然后我一看,果然是我起错了名字的问题...应该是com/mapper下
如何查看资源路径:
就会看到资源管理器中的目录关系。
可是又遇到了那个配置局部/全局数据源,连接sql失败也遇到的问题(找不到驱动类),先留个坑, 解决以后来填...
日志也报了以下的错误,细看也发现了lookup()方法的失败:破案了,原来是我配置jdbc的时候,获取参数名字填错了,是Driver不是driver(晕...),不过这说明,连接不到资源(无论是配置文件中的错误,如url,driver等本来就不对,还是获取参数没获取到等)都会导致资源创建实例错误,即NamingException,不过一般lookup()跟驱动driver有关的。
javax.naming.NamingException: 无法创建资源实例
at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:98)
at java.naming/javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:330)
at org.apache.naming.NamingContext.lookup(NamingContext.java:864)
at org.apache.naming.NamingContext.lookup(NamingContext.java:158)
at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:115)
at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:69)
at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:32)