在 glassfish 上部署时出现异常:ArrayIndexOutOfBounds异常:9578



当我在 tomcat 上部署我的 war 文件时,还可以,但是当我将其部署到 glassfish 上时,它会给出异常,我搜索但没有找到如何解决这个问题的结果。

java.lang.ArrayIndexOutOfBoundsException: 9578
at org.objectweb.asm.ClassReader.readClass(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:363)
at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:171)
at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:133)
at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348)
at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70)
at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:307)
at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
...............
[#|2018-10-07T15:19:22.345+0330|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=84;_ThreadName=Thread-2;|Exception while loading the app|#]
[#|2018-10-07T15:19:25.182+0330|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=84;_ThreadName=Thread-2;|Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TestController' defined in file [E:glassfish3-Reservationglassfish3glassfishdomainsdomain1applicationsmyprojectWEB-INFclassescomcompanycontrollerTestController.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError

如果可以的话,最好的选择是更新您的 Glassfish 服务器。您的 3.1.2 版本太旧了,当前版本是 5.0。

另一种选择是在 TestController 类中查找 Lambda 表达式,并删除或用标准代码替换它们。

当您使用 Lambda 表达式或较新的 Java 字节码且版本太旧时,似乎会发生此异常asm.jar。这与旧版本的Glassfish有关,该版本与捆绑asm.jar3.1的Jersey 1.x捆绑在一起。此版本似乎与 Java8 或更新的字节码不完全兼容。

更多相关信息:

  • 奇怪的java.lang.ArrayIndexOutOfBoundsException in jetty startup
  • REST 服务中的 Java 8 Lambda 表达式不起作用
  • ArrayIndexOutOfBoundsException 当使用 Java 8 语言特性时

最新更新