loader constraint violation Java的类加载过程中出现了加载器约束冲突

1.java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name "javax/servlet/http/HttpServletRequest" 是因为在Java的类加载过程中出现了加载器约束冲突。

2.具体原因

在pom.xml对于servlet jsp配置中没有添加

<scope>provided</scope>

添加之后

<!--ServletAPI的相关依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
<!--    jsp的相关依赖-->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>

再次运行即可

注意,两个都需要添加!

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
java.lang.LinkageError:loader constraint violation: when resolving method解释为加载约束错误:在解析方法时。 当Java虚拟机(JVM)在运行时尝试加载类和解析类的方法时,可能会遇到该错误。这通常发生在以下情况下: 1. 类型冲突加载尝试使用两个不同的类加载加载具有相同名称但不同版本的类,从而导致了方法的冲突。因此,使用了不兼容的类定义。 2. 类重定义:加载尝试重新定义已经在虚拟机加载的类,从而导致加载的重复。这可能会导致类的冲突以及方法无法解析。 解决这个问题的方法如下: 1. 检查类加载:确定是否有多个类加载同时加载了相同的类。如果是,请确保只有一个类加载加载相应的类。 2. 更新依赖关系:检查项目的依赖关系,确保所有的依赖项都是最新的版本并且兼容。 3. 清除类缓存:如果问题仍然存在,可以尝试清除JVM的类缓存。可以通过删除临时目录的所有缓存文件来实现(例如,Java.io.tmpdir系统属性指向的目录)。 4. 更新JVM:确保使用的JVM是最新版本。有时,这种错误可能是由于JVM本身的问题引起的,而在较新的版本可能已经修复。 总之,加载约束错误是由于类加载冲突或类重定义导致的,解决方法包括检查类加载、更新依赖关系、清除类缓存以及更新JVM版本等。根据具体情况选择适当的解决方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值