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

  • Post author:
  • Post category:其他


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

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包冲突



版权声明:本文为SaRAku原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。