反射未在 docker 容器/jar 上找到类

Posted

技术标签:

【中文标题】反射未在 docker 容器/jar 上找到类【英文标题】:Reflections not finding classes on docker container/jar 【发布时间】:2022-01-13 14:49:09 【问题描述】:

在 docker 容器中运行我的应用程序或使用 jar 文件时,我遇到了一些愚蠢的问题。 当应用程序在本地启动使用反射的迁移库时:

new Reflections("package").getTypesAnnotatedWith(SomeClass.class)

能够找到带有此注释的类。 但是当它在 docker 容器内或从 *.jar 文件中执行时 - 反射没有找到任何类。 使用的jar文件是maven构建的。

更新: 如果我们将包装更改为战争 - 一切都可以正常工作。但最好只有 jar 文件。

【问题讨论】:

当您谈论 JAR 时,您是在谈论单个 fat/Uber JAR 吗?或者你有一个包含大量 JAR 的目录?还是单个非 Uber JAR? spring-boot-maven-plugin生成的单个jar 【参考方案1】:

看起来它与版本 0.10.2 上的反射有关 我不知道 *.war 和 *jar 之间的区别以及为什么它只能在 *.war 上正常工作

有人知道区别吗?

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于反射未在 docker 容器/jar 上找到类的主要内容,如果未能解决你的问题,请参考以下文章

Flask 应用程序未在 docker 中暴露于外部世界

从 Spring Boot 应用程序启动的 Cucumber 未在 jar 中找到胶水类

Mac 上带有 Node 和 Express 的 Docker 容器,未在浏览器中显示?

markdown 显示未在Docker中运行的容器

ubuntu中Docker 容器正在运行,但未在 docker ps 中显示

ubuntu中Docker 容器正在运行,但未在 docker ps 中显示