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)
我试过 讨论答案并从 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>
我正在尝试 运行 同一台服务器上的另一个 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 3 的 .jar 库,所以在将它更新到 Guice 4 之后,Tomcat 启动了:
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.1.0</version>
</dependency>