框架学习遇到的问题及解决方案


我们在学习的过程中,都会遇到各种各样的问题,所以为了能够帮助到和我一样在学习的时候有遇到同样问题的朋友,我把我遇到的问题及其解决方法都记录了起来。

问题1:No mapping for GET /admin/

解决方法:

遇到这个问题,我们就是把已经配置好的Tomcat删了,重新编译项目,再重新配置Tomcat。在部署的时候应用程序上下文就写一个 ‘/’ 如下图所示↓:
在这里插入图片描述

问题2:Component name “login” should always be multi-word vue/multi-word-component-names

就是组件名不能为一个单词的问题

解决方法:

方法一:可以把组件名写成驼峰命名,如把login 改成 loginIn

方法二:可以在vue.config.js中加入lineOnSave:false

问题3:通配符的匹配很全面, 但无法找到元素 context:component-scan 的声明。

就是导入的声明不全,导入的声明需要下面这三条

解决方法:

xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd

问题4:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

dispatcherServlet找不到的问题

解决方法:

需要对项目依赖添加lib目录,如下图:
在这里插入图片描述

问题5:java版本不匹配问题

java:警告:源发行版 11 需要目标发行版 11
在这里插入图片描述
java : 无效的目标发行版 :11
在这里插入图片描述

解决方法:

看下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题6:关于:com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor

那些大佬说是因为依赖5.0版本之后,interceptor中的引用不在是PageHelper了,而是改为PageInterceptor。而在properties的地方,4.0版本之后可以不设置相关参数。

解决方法:

导入依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.3.0</version>
</dependency>

在配置中配置

<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
</plugins>

问题7:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效

这个问题的原因就是你的项目有中文,但是你的项目不是utf-8的字符编码。

解决方法:

如下图:
在这里插入图片描述

问题8:java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

大佬们说org.springframework.web.util.Log4jConfigListener这个类在spring5。0及以上版本已经废弃删除,如果想使用这个类,spring版本需要降低。

但我们可以不用降低spring的版本,我们提高依赖的版本!

解决方法

导入依赖:
版本自选

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-web -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>
    <version>2.17.2</version>
</dependency>

修改web.xml配置

<listener>
    <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>

问题9:idea怎么设置Tomcat访问磁盘文件

我们在使用做项目的时候可能会涉及到上传或者访问本地文件,所以我们要设置Tomcat,给Tomcat设置要访问的文件路径

解决方法:

如下图:
在这里插入图片描述

问题10:类com.chen.servlet.CookieDemo01不是Servlet

在这里插入图片描述
当你出现这个问题的时候,检查一下你的Tomcat的版本是不是10的。

解决方法

这个问题可以用两个方法来解决:

方法一:

修改Tomcat的版本。 个人推荐使用Tomcat 9,这是Tomcat 9 的下载路径:
https://tomcat.apache.org/download-90.cgi

方法二:

修改导入的依赖 如 ↓


<!-- tomcat 10 之前所导入的依赖-->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

<!-- tomcat 10 所要导入的依赖-->
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api -->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>10.1.0-M14</version>
</dependency>

然后这里还有关键的一步:
Java类中导入到 javax 包要手动改为 jakarta

// 10 之前的导包
import javax .servlet.http.HttpServlet;
//10 之后的导包
import jakarta.servlet.http.HttpServlet;

这里给大家一个放个maven仓库的地址:
https://mvnrepository.com/

idea的 maven 项目导不进依赖的问题

检查idea的版本,检查自己下载 maven 仓库的版本。

这个问题是我室友在学习的时候遇到的,
他的idea版本是2020版,maven版本是3.8
然后我去查了一下,那些大佬说这两个版本不兼容,所以我们降低maven的版本。

解决方法:

把maven版本降到3.6,这个问题就解决了。
这里给大家一个下载maven所有版本的地址
https://downloads.apache.org/maven/maven-3/

在这里插入图片描述

elasticsearch 闪退问题

我的电脑版本是win11,然后我在双击elasticsearch.bat之后小黑窗出现闪退问题。这个时候我们通过cmd看一下是什么问题导致的。操作如下:
1、进入elasticsearch安装目录下的bin文件夹;
然后 dir ,可以看到elasticsearch.bat,
接着执行elasticsearch.bat
这样就可以看到报错原因了

Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

在这里插入图片描述

解决方法:

打开elasticsearch安装目录下conf文件夹中的jvm.options文件 ,将里面的内容修改一下即可;
在这里插入图片描述

## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
改成如下即可
## GC configuration
#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly

引发了load()异常

org.apache.catalina.core.StandardContext.loadOnStartup web应用程序[/aiamediamgr]中的Servlet[springmvc]引发了load()异常 java.lang.ClassNotFoundException: com.yq.web.aiamediamgr.common.context.SpringContextHolder at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)

寻找问题

1、找到项目路径 的 .classpath ,这个文件
在这里插入图片描述
2、用记事本打开
在这里插入图片描述
打开之后看到我红框里面那一行,如果和我的一样,就可以用到我的解决方法。

解决方法

将上图改成下图这样即可!

path="WebContent/WEB-INF/classes"

在这里插入图片描述

记一次用 fastjson JSON.toJSONString(request) 异常问题

问题

我想将HttpServletRequest 的参数打印出来,但是我用了阿里的toJSONString打印出来,实例如下↓,报了一个异常!

HttpServletRequest request = (HttpServletRequest) servletRequest;
logger.info("request="+JSON.toJSONString(request));

解决方法

这个问题的原因就是:报错的原因是 Request 对象中的一些属性不能被转换为 JSON 格式的字符串。
解决方法就是不用JSON.toJSONString(request) 打印出来!
如果你要真的要将 Request 对象转换为 JSON 字符串,建议自建 Java 对象,并将 Request 中需转换的部分复制到自建对象上,然后再将自建对象转换为 JSON 字符串。


这篇文章不断更新,毕竟学无止境,后面可能还有很多问题等着我,我会继续把问题和解决方法写在这里。
我目前遇到的问题和我的把问题解决的方法都写在这了,如果您觉得有什么更好的解决方法,或者我的解决方法不起作用,欢迎评论区留言讨论。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小混子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值