gpt4 book ai didi

java - 从 Javascript 记录 Vertx 3 应用程序

转载 作者:行者123 更新时间:2023-11-29 19:25:49 26 4
gpt4 key购买 nike

有时在开发过程中将事情记录到控制台是很好的。在我创建的 Vert.x 3 项目中,我尝试按照 Vert.x 3 文档页面上的说明进行日志记录:

http://vert-x3.github.io/docs/vertx-core/js/#_logging_from_your_application

文档提供了这个示例代码:

// Note -these classes are Java only

// You would normally maintain one static instance of Logger per Java class:

var logger = Java.type("io.vertx.core.logging.LoggerFactory").getLogger(className);

logger.info("something happened");
logger.error("oops!", exception);

编译时,"var logger = ..."行会出现以下错误:

Failed in deploying verticle java.lang.RuntimeException: java.lang.ClassNotFoundException: io.vertx.core.logging.LoggerFactory at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:391) at jdk.nashorn.internal.scripts.Script$Recompilation$13$1895AAAAA$\^eval_.L:27$_load(null:107) at jdk.nashorn.internal.scripts.Script$Recompilation$4$4036AAAA$\^eval_.L:27$doRequire(null:149) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:644) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229)

(注意:“className”变量看起来也很可疑。它没有在任何地方说明它应该是什么,目前在编译时它是“未定义的”)

有什么想法吗?

最佳答案

这是由于版本在 Vertx 3 里程碑中略有不同步。该文档已经反射(reflect)了里程碑 7 中即将发生的变化,其中类包是:

    io.vertx.core.logging.LoggerFactory

但是,在里程碑 6 中您需要使用:

    io.vertx.core.logging.impl.LoggerFactory

如果您将代码更新为:

    var logger = Java.type("io.vertx.core.logging.impl.LoggerFactory").getLogger(className);

它应该可以工作。

关于java - 从 Javascript 记录 Vertx 3 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30879951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com