user1814879
user1814879

Reputation: 984

Spring boot application started fail with tomcat 7 jdk1.8

I am trying to deploy my Spring boot application on a Tomcat 7 server and start it. When I start I have : org.apache.catalina.startup.Catalina] Server startup in 11954 ms

But I get the issues below and my deployment failed:

  Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:tomcat/7_0_61-ep-01/webapps/app-oss/WEB-INF/lib/byte-buddy-1.9.12.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:177)
        at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:85)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2089)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1965)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1931)
        at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1916)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1330)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5416)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1882)
        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)

Unable to process Jar entry [module-info.class] from Jar [jar:file:tools/tomcat/7_0_61-ep-01/webapps/app-oss/WEB-INF/lib/jakarta.xml.bind-api-2.3.2.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:177)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1882)
    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)

Depencies springboot :

ging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

How can I fix it ? I edited my post for adding one part of dependencies springboot .. The package is a WAR and I exclude tomcat

Upvotes: 2

Views: 1336

Answers (2)

Deepesh kumar Gupta
Deepesh kumar Gupta

Reputation: 896

Tomcat version is not compatible with the one you are using in jdk. see this article shows it clearly http://tomcat.apache.org/whichversion.html
some time you can get hints from quora to https://www.quora.com/Is-Tomcat-7-compatible-with-JDK-8

Upvotes: 1

Ameera Najah Kv
Ameera Najah Kv

Reputation: 67

Your application is packaged as a jar file. In order to deploy it to tomcat you need to pack it as a war file and add tomcat dependency. You can do this in your pom.xml as follows:

<groupId>com.example</groupId>
<artifactId>example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>

By default spring boot produces a jar file after packaging and has an embedded tomcat server. To run it only JRE is required. If you need to deploy it to tomcat follow the above steps.

Upvotes: 1

Related Questions