Java 运行节点时发生非法的反射访问操作

Java 运行节点时发生非法的反射访问操作,java,corda,Java,Corda,我正在尝试运行我的corda节点,但我面临一个奇怪的问题,正如您在日志中看到的那样,节点正在正确启动 C:\Repositorio\cordapp-template-kotlin\build\nodes>runnodes --log-to-console --logging-level=DEBUG Starting nodes in C:\Repositorio\cordapp-template-kotlin\build\nodes Starting corda.jar in C:\Rep

我正在尝试运行我的corda节点,但我面临一个奇怪的问题,正如您在日志中看到的那样,节点正在正确启动

C:\Repositorio\cordapp-template-kotlin\build\nodes>runnodes --log-to-console --logging-level=DEBUG
Starting nodes in C:\Repositorio\cordapp-template-kotlin\build\nodes
Starting corda.jar in C:\Repositorio\cordapp-template-kotlin\build\nodes\Notary on debug port 5005
Starting corda.jar in C:\Repositorio\cordapp-template-kotlin\build\nodes\PartyA on debug port 5006
Starting corda-webserver.jar in C:\Repositorio\cordapp-template-kotlin\build\nodes\PartyA on debug port 5007
Starting corda.jar in C:\Repositorio\cordapp-template-kotlin\build\nodes\PartyB on debug port 5008
Starting corda-webserver.jar in C:\Repositorio\cordapp-template-kotlin\build\nodes\PartyB on debug port 5009
Started 5 processes
Finished starting nodes
然而,当服务器打开5个控制台以实际运行Web服务和节点时,它就发生了

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by Capsule (file:/C:/Repositorio/cordapp-template-kotlin/build/nodes/PartyB/corda.jar) to field com.sun.jmx.mbeanserver.JmxMBeanServer.mbsInterceptor
WARNING: Please consider reporting this to the maintainers of Capsule
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
Listening for transport dt_socket at address: 5008
[quasar] ERROR: java/lang/Thread
java.lang.IllegalArgumentException
        at co.paralleluniverse.asm.ClassReader.<init>(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.<init>(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.<init>(Unknown Source)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.checkFileAndClose(MethodDatabase.java:344)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.checkClass(MethodDatabase.java:324)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.getOrLoadClassEntry(MethodDatabase.java:183)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.isMethodSuspendable0(MethodDatabase.java:194)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.isMethodSuspendable(MethodDatabase.java:161)
        at co.paralleluniverse.fibers.instrument.InstrumentMethod.isSuspendableCall(InstrumentMethod.java:231)
        at co.paralleluniverse.fibers.instrument.LabelSuspendableCallSitesClassVisitor$1.visitMethodInsn(LabelSuspendableCallSitesClassVisitor.java:64)
        at co.paralleluniverse.asm.ClassReader.a(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.b(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
        at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:123)
        at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:94)
        at co.paralleluniverse.fibers.instrument.JavaAgent$Transformer.transform(JavaAgent.java:209)
        at java.instrument/java.lang.instrument.ClassFileTransformer.transform(Unknown Source)
        at java.instrument/sun.instrument.TransformerManager.transform(Unknown Source)
        at java.instrument/sun.instrument.InstrumentationImpl.transform(Unknown Source)
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
        at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
        at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
[quasar] ERROR: java/lang/Thread
java.lang.IllegalArgumentException
        at co.paralleluniverse.asm.ClassReader.<init>(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.<init>(Unknown Source)
        at co.paralleluniverse.asm.ClassReader.<init>(Unknown Source)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.checkFileAndClose(MethodDatabase.java:344)
        at co.paralleluniverse.fibers.instrument.MethodDatabase.checkClass(MethodDatabase.java:324)
警告:发生了非法的反射访问操作
警告:胶囊(文件:/C:/Repositorio/cordapp template kotlin/build/nodes/PartyB/corda.jar)对com.sun.jmx.mbeanserver.JmxMBeanServer.mbsInterceptor字段的非法反射访问
警告:请考虑将此报告给胶囊维护人员。
警告:使用--invalize access=warn以启用对进一步非法访问操作的警告
警告:所有非法访问操作将在未来版本中被拒绝
正在侦听地址为5008的传输dt_套接字
[quasar]错误:java/lang/Thread
java.lang.IllegalArgumentException
位于co.paralleluniverse.asm.ClassReader。(未知来源)
位于co.paralleluniverse.asm.ClassReader。(未知来源)
位于co.paralleluniverse.asm.ClassReader。(未知来源)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.checkFileAndClose(MethodDatabase.java:344)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.checkClass(MethodDatabase.java:324)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.getOrLoadClassEntry(MethodDatabase.java:183)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.isMethodSuspendable0(MethodDatabase.java:194)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.isMethodSuspendable(MethodDatabase.java:161)
位于co.paralleluniverse.fibers.instrument.InstrumentMethod.isSuspendableCall(InstrumentMethod.java:231)
位于co.paralleluniverse.fibers.instrument.LabelSuspendableCallSitesClassVisitor$1.visitMethodInsn(LabelSuspendableCallSitesClassVisitor.java:64)
位于co.paralleluniverse.asm.ClassReader.a(未知源)
位于co.paralleluniverse.asm.ClassReader.b(未知源)
位于co.paralleluniverse.asm.ClassReader.accept(未知源)
位于co.paralleluniverse.asm.ClassReader.accept(未知源)
位于co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:123)
位于co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:94)
位于co.paralleluniverse.fibers.instrument.JavaAgent$Transformer.transform(JavaAgent.java:209)
位于java.instrument/java.lang.instrument.ClassFileTransformer.transform(未知源)
位于java.instrument/sun.instrument.TransformerManager.transform(未知源)
位于java.instrument/sun.instrument.InstrumentationImpl.transform(未知源)
位于java.base/java.lang.ClassLoader.defineClass1(本机方法)
位于java.base/java.lang.ClassLoader.defineClass(未知源)
位于java.base/java.security.SecureClassLoader.defineClass(未知源)
位于java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(未知源代码)
位于java.base/jdk.internal.loader.BuiltinClassLoader.findclassonclasspathrnull(未知源)
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(未知源代码)
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(未知源)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(未知源)
位于java.base/java.lang.ClassLoader.loadClass(未知源)
位于java.instrument/sun.instrumentation.InstrumentationImpl.loadClassAndStartAgent(未知源)
位于java.instrument/sun.instrumentation.InstrumentationImpl.loadClassAndCallPremain(未知源)
[quasar]错误:java/lang/Thread
java.lang.IllegalArgumentException
位于co.paralleluniverse.asm.ClassReader。(未知来源)
位于co.paralleluniverse.asm.ClassReader。(未知来源)
位于co.paralleluniverse.asm.ClassReader。(未知来源)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.checkFileAndClose(MethodDatabase.java:344)
位于co.paralleluniverse.fibers.instrument.MethodDatabase.checkClass(MethodDatabase.java:324)
控制台的打印屏幕:


有人面临过同样的问题吗?我不知道如何调试它。

您正在运行Java 10。Corda仅在OracleJDK8JVM的8u131+版本上受支持


您可以在此处看到所需的Java版本:。

文件>项目结构下更改Project SDK后。。。到1.8.0_242
,您可能还需要通过以下方式取消链接,并再次链接

  • 右键单击Gradle窗口上的Gradle项目,然后单击
    取消Gradle项目链接
  • 转到
    文件>关闭项目
  • 再次打开当前项目,您将看到一条消息
    IntelliJ IDEA发现了一个Gradle构建脚本
  • 单击它下面的导入渐变项目,等待它完成

  • 我写这篇文章是因为我不小心在Java11环境中导入了Gradle。然而,在更改project SDK后,由于
    java.lang.IllegalArgumentException
    错误,我仍然无法运行单元测试。

    您是在运行现有的CorDapp还是自己的CorDapp?您是否使用
    deployNodes
    runNodes
    运行它?默认cordapp和我自己的cordapp都会出现这种情况。我想这和我的笔记本电脑有关。你能检查一下你的Java版本吗<代码>java-来自终端的版本。这可能与Java 9.Java 10.0.1 2018-04-17 Java(TM)SE运行时环境18.3(构建10.0.1+10)Java热点(TM)64位服务器VM 18.3(构建10.0.1+10,混合模式)有关