zoukankan      html  css  js  c++  java
  • Invalid byte tag in constant pool: 19 与 javax/el/ELManager问题解决

    整个生产环境采用JDK1.8 + Tomcat 7.0.65

    代码重构后,启动报错,主要异常如下:

    严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/home/unisound/private_cloud_platform/device_center/apache-tomcat-7.0.65/webapps/device-center/WEB-INF/lib/lombok-1.18.2.jar!/] for annotations
    org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
    ERROR localhost-startStop-1 (FrameworkServlet.java:502) - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/el/ELManager
    

     根据提示,明确是由于lombok 和 validatation校验框架引起的;

    查看当前引入的jar包版本:

     <version.lombok>1.18.2</version.lombok>
     <version.validation-api>2.0.1.Final</version.validation-api>
     <version.hibernate-validator>6.0.9.Final</version.hibernate-validator>
    
    
            <!-- Bean Validator,验证参数 -->
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${version.hibernate-validator}</version>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>${version.validation-api}</version>
            </dependency>
            <!-- lombok 自动生成 Setter/Getter 方法 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${version.lombok}</version>
            </dependency>

    原来是因为lombok 和 hibernate-validator引起的,当前版本Tomcaat7是不支持滴。

    解决方案:

    1、lombok 和 hibernate-validator版本降级

    <version.lombok>1.14.8</version.lombok>
    <version.validation-api>2.0.0.Final</version.validation-api>
    <version.hibernate-validator>5.4.3.Final</version.hibernate-validator>
    

    2、升级tomcat8

    强烈建议使用第二种方案!tomcat7的bug也可以解决掉,当然代价就是所有功能的回归测试。。。

  • 相关阅读:
    来自lombok的注解(解决idea中的找不到get,set方法,找不到log的问题)
    IDL语言开发规范
    神经网络训练时出现nan错误
    Hadoop WordCount程序
    Hadoop2.4.1伪分布式安装
    Hadoop简介
    linux 安装tensorflow(gpu版本)
    高级映射,查询缓存和与spring整合
    用mybatis实现dao的编写或者实现mapper代理
    mybatis介绍与环境搭建
  • 原文地址:https://www.cnblogs.com/huahua035/p/11172351.html
Copyright © 2011-2022 走看看