我有一个Spring Feign客户端,它使用POST将POJO对象发送到远程端点,我的应用程序启动失败,出现以下异常。
异常错误:无法使字段成为静态最终java.lang.invoke.方法句柄$Lookup java.lang.invoke.方法句柄$Lookup.IMPL_LOOKUP可访问:模块java.base不会对未命名的模块“打开java.lang.invoke”@420a85c4
Below the dependencies I am using in my application.
java version: 17
spring boot version: 2.5.3
spring boot cloud version: 2020.0.3
spring boot starter openfeign version: 2.2.8.RELEASE
As recommended in https://github.com/OpenFeign/feign/issues/935, I had tried
workaround solution: Adding this jvm option '--add-opens java.base/java.lang.invoke=ALL-
UNNAMED' worked.
除了jvm参数之外的任何其他替代建议都是非常受欢迎的。
4条答案
按热度按时间yuvru6vn1#
强制OpenFeign版本至少为11.7,这样就解决了issue问题。
如果您使用的是Spring依赖关系管理插件,那么您可以这样做(Gradle示例):
jqjz2hbq2#
对我来说,添加以下JVM选项是有效的:
e3bfsja23#
对于JDK 9+,如果使用JVM选项来解决问题,请将另一个
=
添加到JVM选项中:例如:bqf10yzr4#
当我在标记为
@FeignClient
的接口类中声明默认方法(带有实现的方法)时,我也有同样的错误。我只是删除了默认方法,错误就消失了