【问题标题】:org.reflection.Reflections 0.10.2 fails when running as jar (e.g. in a docker container)org.reflection.Reflections 0.10.2 作为 jar 运行时失败(例如在 docker 容器中)
【发布时间】:2022-01-16 00:38:24
【问题描述】:

我使用了 org.reflections(最新):

new Reflections("my.package").getSubTypesOf(MyService.class);

它在 IntelliJ 中运行良好,并返回 MyService.class 的所有实现。

但是在 docker 容器中运行,它返回一个空的Set

(其他任何东西都可以在 docker-container 中正常工作)

有什么想法吗?蒂亚!

【问题讨论】:

  • 它适用于org.reflections 版本0.9.12,但不适用于最新的0.10.2
  • 我认为原因是github.com/ronmamo/reflections/issues/373 - 所以我必须等待下一个版本......直到,我将使用0.9.12
  • 您可以使用您参考的问题单中给出的解决方法吗?
  • @CryptoFool 对不起。我忽略了解决方法。这样就可以了。感谢您的提示。 :)

标签: java spring spring-boot docker reflections


【解决方案1】:

这个答案来自 cmets ...

问题是以下错误/问题:

https://github.com/ronmamo/reflections/issues/373 - '反射没有检测到任何类,如果基类(或包前缀)作为参数传递,并且应用程序作为 jar 运行'

但它(对我而言)适用于上述问题中建议的解决方法。

Reflections reflections = new Reflections(new ConfigurationBuilder().forPackages("my.package"));
Set<Class<? extends MyService>> classes = reflections.getSubTypesOf(MyService.class);

【讨论】:

  • 我建议您在回答中说明该问题与 Docker 无关,而是问题代码是在单独的类文件中还是打包到 Jar 文件中的函数。或者,也许更好的是,您可以更新您的问题以反映真正的问题。
猜你喜欢
  • 2019-05-09
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 2019-01-02
  • 2017-01-30
  • 1970-01-01
相关资源
最近更新 更多