繁体   English   中英

Spring Boot应用程序可以独立运行,但是在Tomcat中部署时找不到类

[英]Spring Boot application works as standalone but class not found when deployed in Tomcat

我有spring boot应用程序,微服务

作为Spring Boot应用程序,我可以毫无问题地运行它

mvn clean compile spring-boot:run

现在,如果我尝试将其部署在tomcat 9中,则将收到ClassNotFoundException,它表示好像缺少了一些jar,我尝试为一个应用程序添加缺少的jar,但是对于新的应用程序,它会不断出现。 这里没有涉及任何步骤,可以以标准方式进行编译,测试,然后打包并部署到tomcat。

可能是什么问题。 我猜这里不需要实际的日志,因为问题似乎很普遍

答案很简单,简单而愚蠢。 如果您遇到任何类似的问题,只需确保您正在运行类似版本的tomcat。

当使用mvn spring-boot:run时,我的spring boot应用程序运行良好,但是我的实际tomcat服务器有点旧,因此缺少一些库。

升级tomcat版本修复了它

首先,Spring boot不需要容器,您可以使用java -jar yourspsringboot.war执行

在pom中,您是否将其编译为具有依赖项的战争? 如果是这样,请在WEB-INF / lib目录下进行验证。 如果您不能在lib目录中找到依赖项,那应该是问题所在。

请在pom中包含以下构建标记。 创建新的构建部署。 它会工作。 我也面临这个问题。

<build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.5.3.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20</version>
                <configuration>
                    <useSystemClassLoader>false</useSystemClassLoader>
                </configuration>
            </plugin>
        </plugins>
    </build>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM