繁体   English   中英

Tomcat启动期间发生错误-com.google.inject.internal.util。$ ComputationException:java.lang.ArrayIndexOutOfBoundsException

[英]Error during Tomcat startup - com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException

我正在尝试在同一服务器上运行另一个Tomcat实例。 当我在第一个Tomcat 7上部署应用程序(Maven,Java 8,Guice 3.0,Jersey 1.19)时,它会启动并正常运行。 但是,另一个Tomcat 7中的同一应用程序无法正确启动:

java.util.logging.ErrorManager: 5
com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException: 57912
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
    at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
    at com.google.inject.internal.util.$StackTraceElements.forMember(StackTraceElements.java:53)

...

Caused by: java.lang.ArrayIndexOutOfBoundsException: 57912
    at com.google.inject.internal.asm.$ClassReader.<init>(Unknown Source)
    at com.google.inject.internal.asm.$ClassReader.<init>(Unknown Source)
    at com.google.inject.internal.asm.$ClassReader.<init>(Unknown Source)

我尝试过为什么在尝试启动码头时lambda表达式会破坏guice错误处理? 讨论答案,从Guice 3切换到4,但没有任何改变。

如何解决这个问题呢?

在应用程序中评论lambda表达式后,它可以工作。 但是,我忘了我包括了也使用Guice 3的.jar库,因此在将其更新为Guice 4之后,Tomcat启动了:

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.1.0</version>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM