【发布时间】:2019-01-01 19:33:01
【问题描述】:
我正在尝试在 Docker 容器内运行 Spring Boot 应用程序,但遇到以下问题。但是,如果我通过 STS 运行应用程序,我不会遇到任何问题。
ationConfigEmbeddedWebApplicationContext : 遇到异常 在上下文初始化期间 - 可以 单元格刷新尝试:org.springframework.beans.factory.BeanCreationException:错误 创建名称为“requestMappingHandlerAdapter”的bean 类路径资源 [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: 通过工厂方法实例化 Bean 失败; 嵌套异常是 org.springframework.beans.BeanInstantiationException: Failed to 实例化 [org.springframework.web.servlet.mvc.method.annotation.Re questMappingHandlerAdapter]:工厂方法“requestMappingHandlerAdapter”抛出异常;嵌套异常是 org.springframework.beans.factory.BeanCrea tionException:创建在类路径资源中定义的名称为“mvcValidator”的 bean 时出错 [org/springframework/web/servlet/config/annotation/DelegatingWe bMvcConfiguration.class]:通过工厂方法实例化Bean失败;嵌套异常是 org.springframework.beans.BeanInstantiationException: 失败 o 实例化[org.springframework.validation.Validator]:工厂方法'mvcValidator'抛出异常;嵌套异常是 javax.validation.ValidationEx 接收:HV000183:无法初始化“javax.el.ExpressionFactory”。检查您是否具有 EL 依赖项 在类路径上,或使用 ParameterMessageInt 代替插补器
Dockerfile--
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Pom.xml--
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<imageName>genaaqua/web-project</imageName>
<baseImage>java:8</baseImage>
<entryPoint>
["java", "-jar", "/${project.build.finalName}.jar"]
</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
【问题讨论】:
-
你能分享你的 dockerFile 吗?
-
添加了 dockerfile。
-
Docker 容器中缺少 ExpressionFactory 的依赖项
-
你的 app.jar 是不是一个胖子。我的意思是请确保它是否包含所有依赖项。确保使用将所有 jar 组装到单个 jar 中的 maven/gradle 插件之一。
-
我也试过在 pom 文件中添加 maven 插件,结果相同。我想我错过了什么。
标签: mysql docker spring-boot