log4j构建Corda示例项目时出错

时间:2019-10-28 13:38:23

标签: corda

当我在Windows上使用gradle构建示例corda项目时(gradlew.bat deployNodes) 我在log4j中看到有关DELETE命令的错误:

2019-10-28 16:30:47,207主要错误删除包含无效的属性“ IfFileName”,“ IfLastModified” 2019-10-28 16:30:47,213主要错误缺少删除条件:不支持无条件删除 2019-10-28 16:30:47主要错误无法为元素Delete调用类org.apache.logging.log4j.core.appender.rolling.action.DeleteAction中的工厂方法:java.lang.IllegalArgume ntException:无条件删除不支持java.lang.reflect.InvocationTargetException         在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处         在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         在java.lang.reflect.Method.invoke(Method.java:498)         在org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:964)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:904)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)         在org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)         在org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)         在org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)         在org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548)         在org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620)         在org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637)         在org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)         在org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:76)         在org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)         在org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)         在org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)         在org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121)         在org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)         在org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)         在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)         在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)         在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)         在net.corda.core.utilities.KotlinUtilsKt.contextLogger(KotlinUtils.kt:42)         在net.corda.cliutils.CliWrapperBase $ Companion $ logger $ 2.invoke(CordaCliWrapper.kt:108)         在net.corda.cliutils.CliWrapperBase $ Companion $ logger $ 2.invoke(CordaCliWrapper.kt:107)         在kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)         在net.corda.cliutils.CliWrapperBase $ Companion.getLogger(CordaCliWrapper.kt:65535)中         在net.corda.cliutils.CliWrapperBase $ Companion.access $ getLogger $ p(CordaCliWrapper.kt:107)中         在net.corda.cliutils.CliWrapperBase.call(CordaCliWrapper.kt:142)         在net.corda.cliutils.CliWrapperBase.call(CordaCliWrapper.kt:106)         在picocli.CommandLine.execute(CommandLine.java:1173)         在picocli.CommandLine.access $ 800(CommandLine.java:141)         在picocli.CommandLine $ RunLast.handle(CommandLine.java:1367)         在picocli.CommandLine $ RunLast.handle(CommandLine.java:1335)         在picocli.CommandLine $ AbstractParseResultHandler.handleParseResult(CommandLine.java:1243)         在picocli.CommandLine.parseWithHandlers(CommandLine.java:1526)         在net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:73)         在net.corda.node.Corda.main(Corda.kt:13) 原因:java.lang.IllegalArgumentException:不支持无条件删除         在org.apache.logging.log4j.core.appender.rolling.action.DeleteAction。(DeleteAction.java:71)         在org.apache.logging.log4j.core.appender.rolling.action.DeleteAction.createDeleteAction(DeleteAction.java:212)         ...还有43

2019-10-28 16:30:47,606主要错误为DefaultRolloverStrategy中的Delete返回的空对象。 2019-10-28 16:30:47,736主要错误删除包含无效的属性“ IfFileName”,“ IfLastModified” 2019-10-28 16:30:47,737主要错误缺少删除条件:不支持无条件删除 2019-10-28 16:30:47主要错误无法调用类org.apache.logging.log4j.core.appender.rolling.action.DeleteAction中的工厂方法以删除元素:java.lang.IllegalArgume ntException:无条件删除不支持java.lang.reflect.InvocationTargetException         在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处         在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         在java.lang.reflect.Method.invoke(Method.java:498)         在org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:964)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:904)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)         在org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)         在org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)         在org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)         在org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)         在org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548)         在org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620)         在org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637)         在org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)         在org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:76)         在org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)         在org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)         在org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)         在org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121)         在org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)         在org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)         在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)         在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)         在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)         在net.corda.core.utilities.KotlinUtilsKt.contextLogger(KotlinUtils.kt:42)         在net.corda.cliutils.CliWrapperBase $ Companion $ logger $ 2.invoke(CordaCliWrapper.kt:108)         在net.corda.cliutils.CliWrapperBase $ Companion $ logger $ 2.invoke(CordaCliWrapper.kt:107)         在kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)         在net.corda.cliutils.CliWrapperBase $ Companion.getLogger(CordaCliWrapper.kt:65535)中         在net.corda.cliutils.CliWrapperBase $ Companion.access $ getLogger $ p(CordaCliWrapper.kt:107)中         在net.corda.cliutils.CliWrapperBase.call(CordaCliWrapper.kt:142)         在net.corda.cliutils.CliWrapperBase.call(CordaCliWrapper.kt:106)         在picocli.CommandLine.execute(CommandLine.java:1173)         在picocli.CommandLine.access $ 800(CommandLine.java:141)         在picocli.CommandLine $ RunLast.handle(CommandLine.java:1367)         在picocli.CommandLine $ RunLast.handle(CommandLine.java:1335)         在picocli.CommandLine $ AbstractParseResultHandler.handleParseResult(CommandLine.java:1243)         在picocli.CommandLine.parseWithHandlers(CommandLine.java:1526)         在net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:73)         在net.corda.node.Corda.main(Corda.kt:13) 原因:java.lang.IllegalArgumentException:不支持无条件删除         在org.apache.logging.log4j.core.appender.rolling.action.DeleteAction。(DeleteAction.java:71)         在org.apache.logging.log4j.core.appender.rolling.action.DeleteAction.createDeleteAction(DeleteAction.java:212)         ...还有43

我得到了corda样品的最新版本。 (来自master分支)。我在其他分支机构遇到相同的问题。 我的jdk版本是1.8.0_212。 我使用了cordapp-examples项目

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

在我看来,您似乎是从Corda内部版本指定的其他位置提取JAR文件。

示例的默认分支为release-V4,这就是我正在使用的分支。我运行以下命令,效果很好:

git clone https://github.com/corda/samples
cd cordapp-example
gradlew deployNodes

我将通过运行以下命令来检查您的classpath变量是否未设置(因为这将导致在运行Corda时在这些目录中包含其他JAR文件):

echo %CLASSPATH%

另外,从命令行运行:

java -version
where java

要确保您选择的Java版本

答案 1 :(得分:0)

我有一个与log4j相关的类似问题:

  

log4j2错误无法调用类RollingFileApender中的工厂方法

     

生成节点信息文件时出错

要解决此问题(在Windows上),我采取了以下步骤:

  1. 右键单击MyPC
  2. 点击高级系统设置
  3. 点击环境变量
  4. 将JAVA_HOME更改为指向IntelliJ中用于corDapp的同一jdk目录。 (我将我的文件从OpenJDK \ jdk-13.0.1更改为C:\ Program Files \ Java \ jdk1.8.0_231)
  5. 重新启动IntelliJ并重新运行./gradlew deployNodes