警告:请考虑向com.google.inject.internal.cglib.core.$reflectils$2的维护人员报告

k4aesqcs  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(472)

在使用Java11的Tomcat9服务器上运行webapp时,我收到一条警告消息。
错误如下:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/C:/Users/<myuser>/Documents/Workspace2019-09/.metadata/.plugins/org.eclipse.wst.server.core/tmp8/wtpwebapps/myproject/WEB-INF/lib/guice-3.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

我在google上搜索这个特定的错误,发现在vm参数中添加以下内容可以解决这个警告。

--add-opens java.base/java.lang=ALL-UNNAMED

有没有其他方法来解决这种错误?有人建议用以下方法调试它。谁负责维护com.google.inject.internal.cglib.core?guice 3.0多久将不受支持?

--illegal-access=deny

警告本身说要使用以下内容:

--illegal-access=warn

以下是我的库:

gblwokeq

gblwokeq1#

有问题的项目是googleguice(你没有发布足够的信息让我能够知道什么版本。)
您可以通过让maven central告诉您类是哪个项目的一部分来解决这个问题。

6rvt4ljy

6rvt4ljy2#

这是一个已知的错误。它正在guice的第5版中修复,即将发布(可能)。只需等待版本5发布,然后升级即可。我当前基于主分支的guice版本不再有这个问题。
如果您不害怕beta版本,那么可以使用guice5.0.0-beta-1,它可以解决除辅助注射以外的所有问题。完整的补丁已经准备好了,但是一个新的beta版本还没有发布。

相关问题