Docker 容器在我本地的运行方式与 AWS 不同

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

我在 Windows 11 上使用 docker 桌面来管理我的 Java Web 应用程序的容器。 我在本地构建容器映像并且可以毫无问题地运行它们。 当我将它们推送到 AWS 并将它们作为 FARGATE 服务运行时,当我的应用程序尝试发送电子邮件时,我收到以下错误:

线程“Thread-2”中的异常 java.lang.NoClassDefFoundError:jakarta/activation/DataContentHandler 在 java.base/java.lang.ClassLoader.defineClass1(本机方法) 在 java.base/java.lang.ClassLoader.defineClass(来源未知) 在 java.base/java.security.SecureClassLoader.defineClass(来源未知) 在org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2287) 在 org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:797) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1272) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1120) 在 java.base/java.lang.ClassLoader.defineClass1(本机方法)...

我假设我的容器应该以相同的方式运行,无论它们在什么环境中运行。

有人可以向我解释一下为什么我的假设是错误的吗?

我真的不知道要尝试和更改我的容器,因为它适用于我的本地。

java amazon-web-services docker amazon-ecs
1个回答
0
投票

你的假设是正确的。如果在本地找到该类,则容器也必须将其放在远程。因此,请仔细检查您是否确实在运行相同的图像。

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