记录几个ssm项目遇到的问题。这就是上天对英语贼差还懒的人的报应吗。

不知道是自己菜还是操作不对,总觉得自己遇到好多问题,可能别人也会遇到这么多问题吧。

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&amp;useUnicode=true&amp;useSSL=false&amp;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包冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值