遇到这个问题,我们就是把已经配置好的Tomcat删了,重新编译项目,再重新配置Tomcat。在部署的时候应用程序上下文就写一个 ‘/’ 如下图所示↓:
就是组件名不能为一个单词的问题
方法一:可以把组件名写成驼峰命名,如把login 改成 loginIn
方法二:可以在vue.config.js中加入lineOnSave:false
就是导入的声明不全,导入的声明需要下面这三条
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
dispatcherServlet找不到的问题
java:警告:源发行版 11 需要目标发行版 11
java : 无效的目标发行版 :11
那些大佬说是因为依赖5.0版本之后,interceptor中的引用不在是PageHelper了,而是改为PageInterceptor。而在properties的地方,4.0版本之后可以不设置相关参数。
导入依赖
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.3.0version>
dependency>
在配置中配置
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"/>
plugins>
这个问题的原因就是你的项目有中文,但是你的项目不是utf-8的字符编码。
大佬们说org.springframework.web.util.Log4jConfigListener这个类在spring5。0及以上版本已经废弃删除,如果想使用这个类,spring版本需要降低。
但我们可以不用降低spring的版本,我们提高依赖的版本!
导入依赖:
版本自选
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-coreartifactId>
<version>2.17.2version>
dependency>
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-apiartifactId>
<version>2.17.2version>
dependency>
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-webartifactId>
<version>2.17.2version>
dependency>
修改web.xml配置
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListenerlistener-class>
listener>
我们在使用做项目的时候可能会涉及到上传或者访问本地文件,所以我们要设置Tomcat,给Tomcat设置要访问的文件路径
当你出现这个问题的时候,检查一下你的Tomcat的版本是不是10的。
这个问题可以用两个方法来解决:
修改Tomcat的版本。 个人推荐使用Tomcat 9,这是Tomcat 9 的下载路径:
https://tomcat.apache.org/download-90.cgi
修改导入的依赖 如 ↓
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>4.0.1version>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.apache.tomcatgroupId>
<artifactId>tomcat-servlet-apiartifactId>
<version>10.1.0-M14version>
dependency>
然后这里还有关键的一步:
Java类中导入到 javax 包要手动改为 jakarta
// 10 之前的导包
import javax .servlet.http.HttpServlet;
//10 之后的导包
import jakarta.servlet.http.HttpServlet;
这里给大家一个放个maven仓库的地址:
https://mvnrepository.com/
检查idea的版本,检查自己下载 maven 仓库的版本。
这个问题是我室友在学习的时候遇到的,
他的idea版本是2020版,maven版本是3.8的
然后我去查了一下,那些大佬说这两个版本不兼容,所以我们降低maven的版本。
把maven版本降到3.6,这个问题就解决了。
这里给大家一个下载maven所有版本的地址
https://downloads.apache.org/maven/maven-3/
我的电脑版本是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
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"
我想将HttpServletRequest
的参数打印出来,但是我用了阿里的toJSONString打印出来,实例如下↓,报了一个异常!
HttpServletRequest request = (HttpServletRequest) servletRequest;
logger.info("request="+JSON.toJSONString(request));
这个问题的原因就是:报错的原因是 Request 对象中的一些属性不能被转换为 JSON 格式的字符串。
解决方法就是不用JSON.toJSONString(request) 打印出来!
如果你要真的要将 Request 对象转换为 JSON 字符串,建议自建 Java 对象,并将 Request 中需转换的部分复制到自建对象上,然后再将自建对象转换为 JSON 字符串。
这篇文章不断更新,毕竟学无止境,后面可能还有很多问题等着我,我会继续把问题和解决方法写在这里。
我目前遇到的问题和我的把问题解决的方法都写在这了,如果您觉得有什么更好的解决方法,或者我的解决方法不起作用,欢迎评论区留言讨论。