0

我已将我们公司应用程序的 Java 版本从 8 更新到 17。在本地机器上,它在构建和运行时调用中都可以正常工作。同样在 GitHub 上,它与 Junit 测试执行一起部署得很好。

问题出在我在 Heroku 上部署应用程序之后。Heroku 构建成功,但在运行时,当我调用方法时,我收到此错误:

"message": "Handler dispatch failed; nested exception is java.lang.reflect.GenericSignatureFormatError: Signature Parse error: expected a class type\n\tRemaining input: java/util/concurrent/CompletableFuture",

这与 java 反射方法和方法的签名有关。我的控制器休息方法返回一个 CompletableFuture 对象。CompletableFuture 有什么不好的地方…………

4

1 回答 1

3

此错误与正在调查的此错误有关。

目前的解决方法是禁用 CompletableFuture 检测。这可以通过在你的 newrelic.yml 的 common 节下添加以下内容来完成:

  class_transformer:
    com.newrelic.instrumentation.java.completable-future-jdk8u40:
      enabled: false

2022-02-23 更新:New Relic 中的错误是由 Java 17 中的此错误引起的:https ://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8282241

于 2021-11-29T22:50:06.203 回答