Неверный байтовый тег в постоянном пуле: сообщение об ошибке 19

avatar
user697911
18 октября 2018 в 05:20
43487
4
17

Это сообщение об ошибке показывает, что Tomcat версии 8.0.30 и я использую JDK 8. Я создаю проект Spring-boot. Некоторые предлагали использовать JDK 8, но я действительно использую JDK 8. В чем проблема?

信息: Starting Servlet Engine: Apache Tomcat/8.0.30
十月 18, 2018 12:26:19 下午 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor /home/export/Domains/nluqe.jd.com/server1/conf/Catalina/localhost/ROOT.xml
十月 18, 2018 12:26:19 下午 org.apache.catalina.core.StandardContext setPath
警告: A context path must either be an empty string or start with a '/' and do not end with a '/'. The path [/] does not meet these criteria and has been changed to []
十月 18, 2018 12:26:32 下午 org.apache.catalina.startup.ContextConfig processAnnotationsJar
严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/home/export/App/nluqe.jd.com/WEB-INF/lib/lombok-1.16.22.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)
at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:55)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:176)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:85)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2011)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1961)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1936)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:586)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1777)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
十月 18, 2018 12:26:34 下午 org.apache.catalina.startup.ContextConfig processAnnotationsJar
严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/home/export/App/nluqe.jd.com/WEB-INF/lib/log4j-api-2.10.0.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)
at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:55)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:176)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:85)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2011)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1961)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1936)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:586)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1777)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Обновлено (я хочу настроить отказ от сканирования аннотаций в соответствии с предложениями):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <bean id="executorService" class="java.util.concurrent.Executors" factory-method="newFixedThreadPool">
        <constructor-arg value="20"></constructor-arg>
    </bean>

    <!-- jsf -->
    <import resource="jsf-context.xml"/>


    <aop:aspectj-autoproxy proxy-target-class="true"/>


    <bean class="com.jd.ump.annotation.JAnnotation">

        <property name="systemKey" value="com.nlu-qe-service.systemKey"></property>

        <property name="jvmKey" value="com.nlu-qe-service.jvmKey"></property>
    </bean>


    </beans>
Источник
Sudhir Ojha
18 октября 2018 в 05:24
1

Возможный дубликат coderhelper.com/questions/23541532/…

user697911
18 октября 2018 в 05:29
0

@SudhirOjha, как добавить "metadata-complete="true" в web.xml? В моем приложении нет файла web.xml. У него есть только spring-base.xml в каталоге "spring". Пожалуйста, смотрите мой обновленный spring-base.xml. Как добавить к нему эти «метаданные»? Я очень новичок в Spring.

Matthias
10 октября 2019 в 12:13
0

Если это вызвано javax.xml.bind:jaxb-api:2.3.0, взгляните на javax.xml.bind:jaxb-api:2.3.1.

Andy Wang
11 августа 2020 в 06:49
0

См. Ответ может помочь: coderhelper.com/questions/23541532/…

Ответы (4)

avatar
Konstantin Kolinko
18 октября 2018 в 21:24
24

У Tomcat 8.0 истек срок службы, и его нельзя использовать!

Заменой является Tomcat 8.5 (реализующий те же спецификации, что и Tomcat 8.0) или Tomcat 9.0 (более новые версии спецификаций). См. «Руководство по миграции» на сайте tomcat.apache.org.

.

org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)

Библиотека BCEL здесь используется для анализа файлов классов, когда Tomcat сканирует аннотации. Используемая вами версия не поддерживает некоторые функции в формате файла класса Java 8, поэтому при попытке анализа файла происходит сбой.

Ваши варианты:

  1. Игнорировать.
  2. Обновить Tomcat.
  3. Исключите эти банки из сканирования аннотаций. (См. официальный FAQ Tomcat → Производительность → Как ускорить запуск Tomcat?).
Vaibhav Jain
20 апреля 2020 в 06:39
1

обновление до tomcat 9 также не решило проблему.

avatar
chris.sohier
9 октября 2020 в 12:14
1

Вы можете попробовать понизить версию пакетов Glassfish в ваших зависимостях. Была проблема с версией 2.30.1 (и сервером Tomcat 8.5), после перехода на 2.22.2 проблема исчезла.

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.22.2</version>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jersey.media</groupId>
      <artifactId>jersey-media-json-jackson</artifactId>
      <version>2.22.2</version>
    </dependency>
Jamie G
9 февраля 2021 в 21:06
0

Спасибо, исправил это для меня!

avatar
samsonych
15 июля 2020 в 18:23
2

Чтобы обновить версию tomcat для плагина tomcat7-maven.

<properties>
    <tomcat7-version>7.0.93</tomcat7-version>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.tomcat.embed</groupId>
                    <artifactId>tomcat-embed-core</artifactId>
                    <version>${tomcat7-version}</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
avatar
Navnath Adsul
18 октября 2018 в 13:29
0

У меня такая же проблема. Я только что изменил версию jar аспекта jrt и аспекта jweaver на

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.8.5</version>
    </dependency>

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.5</version>
    </dependency>

Попробуйте это, возможно, вам тоже подойдет.

user697911
18 октября 2018 в 19:40
0

в моем случае это не работает, и я даже тестировал последнюю версию 1.9. Ни один не работал. Учитывая мой XML-файл конфигурации выше, как я могу добавить «metadata-complete = «true»? У меня нет файла web.xml.

Navnath Adsul
18 октября 2018 в 19:52
0

Привет, попробуй проверить банку ломбока один раз

user697911
18 октября 2018 в 21:23
0

Что вы имеете в виду, проверяя "банку ломбока"?

Navnath Adsul
18 октября 2018 в 21:52
0

Проверить трассировку стека исключений

user697911
18 октября 2018 в 22:31
0

Вы получили какую-нибудь подсказку?