不知道是自己菜还是操作不对,总觉得自己遇到好多问题,可能别人也会遇到这么多问题吧。
1、
Error creating bean with name ‘lifecycleBeanPostProcessor’ defined in class…
One or more listeners failed to start. …
could not find xxx bean
和这些红字都无关,仔细看灰字,xml等文件配置确认无误,把String写成了Sting。
很多人说这可能和Mapper有关。下次遇到可以参考。
2、css/js等文件连接不了
1)把这些文件放在一个static文件内,webapp目录下与resource平齐。
2)shiro设置这些文件可通过,anon
3)TOMCAT那里编辑,把这些文件全配一遍。记得地址是static/img。
4)css引用处记得也要改。
3、谷歌访问jsp跳下载页面,IE不会。
重启了几回还没好,后来突然好了,不过我已经从eclipse换了idea。听说是pom包冲突,idea处理冲突很方便。
4、现在正遇到:shiro注册跳转页面后,页面的css/js等静态资源丢失。
Failed to load resource: the server responded with a status of 404 ()
解决了再写。
5、刚才那个还没解决,新问题。页面显示不出来变成。。???这叫啥页面。
解决:
在web.xml页面中把/*jsp禁了就好了。。。。为什么会变成这样呢,提交给拦截器后它发生了什么。。。
找到了这篇文章,参考下面的解释:url-pattern设置。
https://www.cnblogs.com/zhi-leaf/p/7196684.html
6、Controller重定向后会加上RequestMapping("/user")的地址,像下图这样,页面后缀名变.do,重定向后的地址变成/Web/user/user/login.do
以下是controller页面。为什么会加上两个user…后面的.do还没去掉,难道prefix和suffix出错?
也许是因为。。。它没跳出去。断点测试,看看是不是一直在login里面没出去。
7、登陆链接不上数据库。java.lang.IllegalArgumentException: Result Maps collection does not contain
检查mapper文件,发现有一个字打错了。
8、点击登陆卡在等待localhost响应。
①有人说是mysql没打开。打开后依然没反应。从每个地方输出一段话,看看是哪里的问题。
期间出现了一个问题:不管。应该是我强制停止tomcat的锅。
警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [DesignWeb] 注册了JDBC驱动程序 [com.alibaba.druid.proxy.DruidDriver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
https://blog.csdn.net/qq_35447265/article/details/84491846?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
这个博主说的挺好。
大概有几种情况会出现这种状态:
1.for update锁表
2.mysql服务未开启
3.查询修改数据的方法必须要close()处理
4.applicationContext.xml文件有错误等
断点排查发现卡在这一句。百度这一句到底是干什么的。
应该是mybatis出的错。
https://blog.csdn.net/qq_41737716/article/details/83685309
不要去深究哪里出的错了。反正源代码也看不懂。
使用log4j日志打印出mybatis问题结果,下面分享一下log4j.propertise代码。使用了以后打出了下面的问题,原来是数据池出错。OK。fine。
“at java.lang.Thread.run(Thread.java:748)
com.alibaba.druid.pool.DruidDataSource-{dataSource-1} inited
com.alibaba.druid.pool.DruidDataSource-create connection error, url: jdbc:mysql://localhost:3306/zzz?useUnicode=true&characterEncoding=UTF-8
java.sql.SQLException: validateConnection false"
这个博主说的是原因。我数据库8.0多,结果这个用的是5.x版本的jdbc,eclipse和idea还是有区别的。这个问题原来我在eclipse也遇到过,直接启动不了…没想到栽在了同一个坑里。
mysql-connector-java 版本号需要和安装的mysql版本号一致!
https://blog.csdn.net/sun_hongbin/article/details/81873967
改了以后还要改JDBC properties
jdbc:mysql://localhost:3306/website?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC/
报了一个username的错Attribute username is not allowed here
排查半天原来是标签未关闭,少了一个”
。。。
wtf!
改了之后重开。终于有回应了,虽然我用的是正确的密码,报了一个用户名或密码错误。淡定。淡定,这是基操。
继续排查吧。直到问题彻底解决。这一个应该是代表取到数据了。
下一条是:应该是密码名字没配上?
org.apache.shiro.authc.UnknownAccountException: Realm [com.dx.realm.myRealm@6c3a4b95] was unable to find account data for the submitted AuthenticationToken
尝试加了一个DX姓名的数据,果然,total变成2了, 说明这确实是取到了。
https://blog.csdn.net/lishehe/article/details/45219023
这个讲的挺好
这个更好。
https://blog.csdn.net/qq_20974635/article/details/78301724?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
针对这个问题
org.mybatis.spring.SqlSessionUtils-SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b7826a3] was not registered for synchronization because synchronization is not active
org.springframework.jdbc.datasource.DataSourceUtils-Fetching JDBC Connection from DataSource
com.alibaba.druid.pool.DruidDataSource-{dataSource-1} inited
org.mybatis.spring.transaction.SpringManagedTransaction-JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@9b9db8c] will not be managed by Spring
检查发现,我的service都是放在impl文件下的,而教程里是这样的。要把service放出来
现在再试试。解决。
但是登陆仍然不成功。明明是正确的账号密码。
应该找到原因了。之前我的log4j的输出级别是DEBUG,输出一大堆,我刚才瞎改改成了INFO。只输出了一句话,不是这个问题也是这个问题了。
com.alibaba.druid.pool.DruidDataSource-{dataSource-1} inited
这个博主说的应该有用,但是我的Mybatis还整合了spring。和她的情况好像不太一样。找到方向了就好,我再瞅瞅。
https://blog.csdn.net/zuoyouzouzou/article/details/88832902
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/website?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=UTC"/>
<property name="username" value="xxxxxx" />
<property name="password" value="xxxxx" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
改了以后再试试
好了确实不报错了。但是还没成功。fuck!为什么还是拿不到实体!why!help!
现在控制台的debug级别输出。我真的要认输了我日。。why?
真的已经连接上了啊?
org.springframework.jdbc.datasource.DataSourceTransactionManager-Creating new transaction with name [com.dx.service.impl.UserServiceImpl.getByUserName]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly
org.springframework.jdbc.datasource.DriverManagerDataSource-Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/website?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=UTC]
org.springframework.jdbc.datasource.DataSourceTransactionManager-Acquired Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62] for JDBC transaction
org.springframework.jdbc.datasource.DataSourceUtils-Setting JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62] read-only
org.springframework.jdbc.datasource.DataSourceTransactionManager-Switching JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62] to manual commit
org.springframework.jdbc.datasource.DataSourceTransactionManager-Participating in existing transaction
org.mybatis.spring.SqlSessionUtils-Creating a new SqlSession
org.mybatis.spring.SqlSessionUtils-Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4f062567]
org.mybatis.spring.transaction.SpringManagedTransaction-JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62] will be managed by Spring
com.dx.dao.UserDao.getByUserName-==> Preparing: select * from user where uName=?
com.dx.dao.UserDao.getByUserName-==> Parameters: DX(String)
com.dx.dao.UserDao.getByUserName-<== Total: 1
org.mybatis.spring.SqlSessionUtils-Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4f062567]
org.mybatis.spring.SqlSessionUtils-Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4f062567]
org.mybatis.spring.SqlSessionUtils-Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4f062567]
org.mybatis.spring.SqlSessionUtils-Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4f062567]
org.springframework.jdbc.datasource.DataSourceTransactionManager-Initiating transaction commit
org.springframework.jdbc.datasource.DataSourceTransactionManager-Committing JDBC transaction on Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62]
org.springframework.jdbc.datasource.DataSourceUtils-Resetting read-only flag of JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62]
org.springframework.jdbc.datasource.DataSourceTransactionManager-Releasing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@72fe1c62] after transaction
org.springframework.jdbc.datasource.DataSourceUtils-Returning JDBC Connection to DataSource
myrealm得到user实体null
得到了,我做了两件事。
1、我mapper文件里的resultMap变量名,我把数据库里的user表的名字全改成了和resultMap的一样。还不就是怕你接不到!
2、把user表填完了。之前因为有激活码的原因,没有把user表填完,这次全部值没有null。空的填0先。再次启动tomcat,成功了。
困扰了我三天。。。。
不过很不幸的是就算得到了,我用正确的密码还是登陆失败了,不过都不算事了,基操。
9、TOMCAT localhost log不打印日志。
log4j:ERROR Could not find value for key log4j.appender.console
看看log.propertise文件,第一行,root什么什么的,后面要大写。ERROR \INFO\ DEBUG.解决方法在第11,8也有。
10、报错08-Mar-2020 23:14:55.686 严重 [http-nio-8888-exec-5] org.apache.catalina.core.StandardHostValve.invoke Exception Processing null
11、不管第10个错误先了。把mybatis配上日志先。
报错
The content of element type “configuration” must match "(properties?,setting
setting在上别名在下,按顺序就好。
12、Cannot resolve org.aopalliance:com.springsource.org.aopalliance:1.0.0
导包的时候突然出现的问题。百度不到。
算了。直接注释掉。
现在还在前面的第8个问题。天知道为什么解决着解决着会多跳出4个问题。
13、java.lang.IncompatibleClassChangeError: Implementing class
JAR包冲突