当我尝试启动 jetty 时,为什么 lambda 表达式会破坏 guice 错误处理?

2023-12-13

我在尝试启动 jetty 时遇到以下问题,出现以下异常:

Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an error in the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: java.lang.RuntimeException: com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException: 51966
[ERROR] at org.apache.maven.surefire.common.junit4.JUnit4RunListener.rethrowAnyTestMechanismFailures(JUnit4RunListener.java:206)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:114)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:85)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:54)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:134)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] Caused by: java.lang.RuntimeException: com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException: 51966
[ERROR] at org.apache.maven.surefire.junitcore.TestSet.replay(TestSet.java:100)
[ERROR] at org.apache.maven.surefire.junitcore.ConcurrentRunListener.testSetCompleted(ConcurrentRunListener.java:82)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreRunListener.testRunFinished(JUnitCoreRunListener.java:73)
[ERROR] at org.junit.runner.notification.RunNotifier$2.notifyListener(RunNotifier.java:95)
[ERROR] at org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:61)
[ERROR] at org.junit.runner.notification.RunNotifier.fireTestRunFinished(RunNotifier.java:92)
[ERROR] at org.junit.runner.JUnitCore.run(JUnitCore.java:161)
[ERROR] at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:113)
[ERROR] ... 6 more
[ERROR] Caused by: com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException: 51966
[ERROR] at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
[ERROR] at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
[ERROR] at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
[ERROR] at com.google.inject.internal.util.$StackTraceElements.forMember(StackTraceElements.java:53)
[ERROR] at com.google.inject.internal.Errors.formatInjectionPoint(Errors.java:716)
[ERROR] at com.google.inject.internal.Errors.formatSource(Errors.java:678)
[ERROR] at com.google.inject.internal.Errors.format(Errors.java:555)
[ERROR] at com.google.inject.CreationException.getMessage(CreationException.java:48)
[ERROR] at java.lang.Throwable.getLocalizedMessage(Throwable.java:391)
[ERROR] at java.lang.Throwable.toString(Throwable.java:480)
[ERROR] at java.lang.String.valueOf(String.java:2979)
[ERROR] at java.io.PrintWriter.println(PrintWriter.java:754)
[ERROR] at java.lang.Throwable$WrappedPrintWriter.println(Throwable.java:764)
[ERROR] at java.lang.Throwable.printStackTrace(Throwable.java:655)
[ERROR] at java.lang.Throwable.printStackTrace(Throwable.java:721)
[ERROR] at org.junit.runner.notification.Failure.getTrace(Failure.java:71)
[ERROR] at org.apache.maven.surefire.common.junit4.JUnit4StackTraceWriter.writeTraceToString(JUnit4StackTraceWriter.java:57)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:330)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:312)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.toString(ForkingRunListener.java:258)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.testError(ForkingRunListener.java:132)
[ERROR] at org.apache.maven.surefire.junitcore.TestMethod.replay(TestMethod.java:118)
[ERROR] at org.apache.maven.surefire.junitcore.TestSet.replay(TestSet.java:87)
[ERROR] ... 14 more
[ERROR] Caused by: java.lang.ArrayIndexOutOfBoundsException: 51966
[ERROR] at com.google.inject.internal.asm.$ClassReader.readUTF8(Unknown Source)
[ERROR] at com.google.inject.internal.asm.$ClassReader.readClass(Unknown Source)
[ERROR] at com.google.inject.internal.asm.$ClassReader.accept(Unknown Source)
[ERROR] at com.google.inject.internal.asm.$ClassReader.accept(Unknown Source)
[ERROR] at com.google.inject.internal.util.$LineNumbers.<init>(LineNumbers.java:62)
[ERROR] at com.google.inject.internal.util.$StackTraceElements$1.apply(StackTraceElements.java:36)
[ERROR] at com.google.inject.internal.util.$StackTraceElements$1.apply(StackTraceElements.java:33)
[ERROR] at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549)
[ERROR] ... 36 more

从我读到的内容来看,问题似乎是 lambda 破坏了 guice 错误处理,但人们仍然没有想出解决方案。 如果有人知道这是什么意思,请发表评论!


当您的 guice 模块之一的配置错误并且您使用的是 Java 8 lambda 和 guice 3 时,就会发生此不可读的异常。

我在这个问题上花了很多时间。每次我都通过升级到解决问题guice 4测试版。其特点之一是:

更好的 Java8 运行时兼容性

如果你使用maven:

<dependency>
  <groupId>com.google.inject</groupId>
  <artifactId>guice</artifactId>
  <version>4.0-beta5</version>
</dependency>

这个新版本将为您提供清晰的错误消息和正确的堆栈跟踪,让您找到问题。当你解决了这个问题后,你可以切换回 guice 3.0 或继续使用 4.0-beta(据我所知,它已经稳定了)。


编辑于2016/07/13

注意guice 4.0和4.1已经发布。所以你应该使用最新版本:

<dependency>
  <groupId>com.google.inject</groupId>
  <artifactId>guice</artifactId>
  <version>4.1.0</version>
</dependency>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我尝试启动 jetty 时,为什么 lambda 表达式会破坏 guice 错误处理? 的相关文章

随机推荐

  • 非常简单的Java动态转换

    简单的问题 但我花了一个多小时来解决这个问题 我的代码如下 我需要使 SomeClass sc 动态化 因此 您将类名作为字符串传递到函数中 并使用该类代替 static someClass 该怎么办呢 SomeClass sc if so
  • 在 Play2 scala 模板中声明变量

    如何声明并初始化要在 Play2 Scala 模板中本地使用的变量 我有这个 var title String Home 在模板顶部声明 但它给了我这个错误 illegal start of simple expression displa
  • 如何截取 WPF 控件的屏幕截图?

    我使用 Bing 地图 WPF 控件创建了一个 WPF 应用程序 我希望能够仅截取 Bing 地图控件的屏幕截图 我使用这段代码来制作屏幕截图 Store the size of the map control int Width int
  • 从 procedure 形式转换为 let 形式

    我在scheme中编写了这个程序形式的代码 我需要将其更改为let形式 这是程序表单代码 define PI 3 14159265 define areac lambda d PI d 2 d 2 define volumec lambda
  • 如何使用 FQL 获取未读消息?

    我正在尝试获取所有未读收件箱的正文和发件人 为了获取所有带有未读消息的对话线程 我使用了以下查询 SELECT thread id from unified thread WHERE folder inbox AND unread 1 为了
  • Sed regexp 寻找空格或行尾

    我正在尝试检测包含三个部分的模式 A space m 或 t 空格或行尾 我想保留 2 和 3 例如 我想改变 我确信他没有 to 我确信他不会 我很难表达 3 因为 似乎只匹配空格 而不匹配行尾 这是我尝试过的 echo i m sure
  • 在 WebSphere 8.5 上使用 JASPIC 身份验证模块

    我有一个 JASPIC 身份验证模块 它在 GlassFish WildFly 和 WebLogic 上运行得非常好 现在我们有一个使用 WebSphere 8 5 的新客户 我无法让 auth 模块在那里正常运行 问题是 WebSpher
  • 与 PrimeFaces Converter 混淆(因为它适用于 selectOneMenu)

    AutoComplete demo 中 PlayersConverter 的实现实际上不仅充当转换器 还充当玩家列表的加载器 我对这个模型有点厌倦 因为加载已经在我的项目中实现了 我不明白为什么 Converter 接口没有作为模板实现 C
  • R 中的错​​误...缺少需要 TRUE/FALSE 的值[重复]

    这个问题在这里已经有答案了 以下是我的 R 脚本的一部分 for i in 1 N 1 if 50
  • Magento 管理网格将数据从 Action 发送到 Controller

    我正在尝试编写一个自定义操作来运行我构建的管理网格 是否可以通过 get 或 post 将网格中的列中的值发送到控制器 我尝试过谷歌搜索 但在任何地方都找不到正确的解释 如果可用的话 指向列设置 getter type 等 说明的链接也会很
  • 我应该何时为导出到 BigQuery 的 Firebase Analytics 数据运行每日 ETL 作业?

    我们使用 Firebase Analytics 从我们的应用收集事件 我们已启用将事件导出到 BigQuery 我们每天都会运行一些 ETL 作业 以便在 BigQuery 中创建更友好的分析表 例如会话 购买 问题是我们什么时候应该运行这
  • 通用 F# 函数:如何获取 F# 可辨别联合的类型?

    代码示例 http www tryfsharp org create dutts Generics fsx 我的 F 中有一些映射代码 它采用 C 对象并将其包装在可区分联合中 module MyModule type MappedThin
  • 在 PHP 中保护文件上传的好方法

    编写一个小应用程序 除其他事项外 让用户上传文件 例如图像 doc 或文本文件 作为他们发布 提交的一部分 我们当前的原型只是将文件转储到 app root 文件 但是当然 即使没有登录或使用该系统 任何人都可以访问该内容 目标是仅授予访问
  • 计算天、小时和分钟的时间差

    更新 我正在更新问题以反映完整的解决方案 使用下面提到的 time diff gem Brett 以下代码有效 code cur time Time now strftime Y m d H M Time diff Time parse 2
  • 如何精确匹配整个文档?

    精确匹配子文档很容易 但是有没有办法精确匹配集合中的整个文档 我有很多包含相似数据的文档 我只需要精确匹配 不需要额外的数据 使用负 exists 对我不起作用 因为我事先不知道所有可能的字段 我认为这不可能完全实现 但一个可能的解决方案是
  • 日志在生产中无法正常工作,作业延迟

    我遇到了一些奇怪的问题 我的delayed jobs 在生产中失败 最后我将范围缩小到记录器 如果我注释掉我的日志函数调用 一切都会正常 但是 如果我尝试记录 我会在delayed job处理程序中得到这个 ruby struct Dela
  • 通用静态字段初始化

    我只是对以下代码感到好奇 public static class Container
  • Swift 4 中的 UIButton 数组

    我用 UIButtons 在 UiKit 中制作了一系列复选框 IBOutlet weak var Box1 UIButton IBOutlet weak var Box2 UIButton IBOutlet weak var Box3 U
  • 如何摆脱 Chrome 控制台中的 [VM] 行?

    现在我可以在我的 chrome 开发者工具中看到有关 VM 的信息 如下所示 我找到了一些解决方案 例如将 暂停按钮 设为灰色 但是 它在我的开发工具中已经是灰色的 这对我来说也不起作用 如何消除控制台中的虚拟机消息 感谢您阅读我的问题 右
  • 当我尝试启动 jetty 时,为什么 lambda 表达式会破坏 guice 错误处理?

    我在尝试启动 jetty 时遇到以下问题 出现以下异常 Execution default test of goal org apache maven plugins maven surefire plugin 2 17 test fail