【问题标题】:error building spring webserver from corda samples从corda示例构建spring webserver时出错
【发布时间】:2020-01-08 00:17:42
【问题描述】:

我正在尝试按照https://github.com/corda/samples/tree/release-V4/spring-webserver 使用命令“gradlew.bat runPartyAServer”在本地运行这个 spring webserver 项目,并收到以下错误“2019-08-14 18:08:20,522 main ERROR Rewrite contains an invalid element or属性“ErrorCodeRewritePolicy” ",你能帮我解决一下吗?PS:corda-example 节点已经启动并运行。(已编辑)

我已经构建了corda示例并且它们正在运行,但是spring webserver没有运行但产生错误

【问题讨论】:

  • 可以分享一下spring webserver的日志输出吗?

标签: corda


【解决方案1】:

错误的原因可能是依赖项的不同版本。 您可以清除缓存并干净部署节点并运行它们。 节点启动后,再次启动 runPartyAServer。

【讨论】:

  • 1.我在intellij中打开了corda示例项目并清理了deployNodes,所有节点都已部署并运行。 2.在新的intellij窗口中打开spring webserver项目并运行“gradlew runPartyAServer”,下面是详细的错误。
  • 您应该删除包含依赖文件的 Gradle 缓存文件夹。路径:C:\Users\xxxx\.gradle\caches(其中 xxxx 是系统用户)。在下一次构建中,Gradle 会尝试再次下载它们。
  • 感谢您的回复。我删除了gradle中的缓存文件夹并清理了deploynodes,但错误仍然出现。
  • 您是否使用与 Github 中 spring-webserver 示例应用程序相同版本的依赖项(见下文)。链接:github.com/corda/samples/blob/release-V4/constants.propertiesconstants.properties:cordaReleaseGroup=net.corda cordaVersion=4.0 gradlePluginsVersion=4.0.45 kotlinVersion=1.2.71 junitVersion=4.12 quasarVersion=0.7.10 log4jVersion =2.11.2 platformVersion=4 slf4jVersion=1.7.25 nettyVersion=4.1.22.Final
  • 您可以使用“--stacktrace”再次运行网络服务器并像之前一样发布日志输出吗?
【解决方案2】:

例外 "ERROR Rewrite contains an invalid element or attribute "ErrorCodeRewritePolicy"" 与 log4j2.xml 的版本有关。

很可能,应用程序下载的 log4j2.xml 文件版本中不存在 ErrorCodeRewritePolicy 属性。

以下是 log4j2.xml 中包含 ErrorCodeRewritePolicy 的代码结构(参见https://github.com/corda/corda/blob/master/config/dev/log4j2.xml)-

<Appenders>.....

 <Rewrite name="Console-ErrorCode-Selector">
        <AppenderRef ref="Console-Selector"/>
        <ErrorCodeRewritePolicy/>
    </Rewrite>

    <Rewrite name="Console-ErrorCode-Appender-Println">
        <AppenderRef ref="Console-Appender-Println"/>
        <ErrorCodeRewritePolicy/>
    </Rewrite>.....

尝试在 build.gradle 中将 $log4j_version 替换为“2.7”。 删除缓存和构建文件夹,让 gradle 重新下载依赖。

替换 -

compile "org.apache.logging.log4j:log4j-web:$log4j_version"

由 -

compile "org.apache.logging.log4j:log4j-web:2.7"

【讨论】:

  • 我目前使用的版本是2.11.2,看起来更新了
  • 使用log4j2 2.7版本后是否再次出现错误“ErrorCodeRewritePolicy”?
【解决方案3】:

经过大量调试,追查到 Spring 的内部结构,我认为 gradle.build 文件中存在错误。我从依赖项部分注释掉了这些:

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
    testCompile "junit:junit:$junit_version"

    // Corda dependencies.
    compile "$corda_release_group:corda-core:$corda_release_version"
    compile "$corda_release_group:corda-rpc:$corda_release_version"
    compile("org.springframework.boot:spring-boot-starter-websocket:$spring_boot_version")  // {
  //      exclude group: "org.springframework.boot", module: "spring-boot-starter-logging"
  //  }
  //  compile "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version"
  //  compile "org.apache.logging.log4j:log4j-web:$log4j_version"
    runtime "$corda_release_group:corda:$corda_release_version"

    // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-reflect
    compile group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: '1.3.61'
}

现在我的代码运行时没有恼人的 ErrorCodeRewritePolicy 错误消息,而且我可以从 applications.properties 配置日志级别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2023-03-03
    • 1970-01-01
    • 2013-01-26
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多