在 AWS ECS 中运行 Correto Docker 映像时出现 java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/bind/Bindable

问题描述 投票:0回答:1

我正在开发 Spring boot 应用程序,尝试将其部署在 AWS ECS 上,在此之前,我在本地(Docker 桌面)上尝试过它,它工作正常,但相同的 correto8 图像在 AWS ECS 上给出了下面提到的错误。

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration]; nested exception is java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/bind/Bindable

这是我正在使用的 Docker 文件:

FROM amazoncorretto:8

# Copy your WAR file to the Tomcat webapps directory
WORKDIR /
COPY target/spring-boot-app*.war app.war

# Expose the default Tomcat port (8080)
 EXPOSE 8080

ARG PROFILE
ENV PROFILE=${PROFILE}
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-amazon-corretto/jre

RUN chown 1000 app.war
RUN /bin/bash -c echo ${PROFILE}
USER 1000

CMD java -jar -Dspring.profiles.active=test -DskipTests /app.war 

我猜这与 Maven 类路径问题有关。

java spring-boot docker maven amazon-ecs
1个回答
0
投票

该错误表明缺少类问题,可能是由于依赖项未正确打包在 WAR 文件中。要解决此问题,请确保所有依赖项都正确列在您的

pom.xml
中并包含在 WAR 中。另外,检查依赖项中是否存在任何冲突,并验证您的 Docker 和 ECS 配置是否正确。最后,确保您的 Spring 配置文件设置正确,并考虑添加更多日志记录以进一步诊断问题。

© www.soinside.com 2019 - 2024. All rights reserved.