在WLS 12中部署应用程序时出现java.lang.ArrayIndexOutOfBoundsException

Yog*_*h_D 5 java weblogic

我在Weblogic中部署应用程序时遇到此错误.

   <Oct 3, 2013 12:18:00 PM IST> <Error> <Deployer> <BEA-149205> <Failed to initialize the application "MyApp" due to error java.lang.ArrayIndexOutOfBoundsException: 4818
8
java.lang.ArrayIndexOutOfBoundsException: 48188
        at com.bea.objectweb.asm.ClassReader.readClass(Unknown Source)
        at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
        at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
        at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:45)
        at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:145)
        Truncated. see log file for complete stacktrace
Caused By: java.lang.ArrayIndexOutOfBoundsException: 48188
        at com.bea.objectweb.asm.ClassReader.readClass(Unknown Source)
        at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
        at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
        at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:45)
        at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:145)
        Truncated. see log file for complete stacktrace
>
Run Code Online (Sandbox Code Playgroud)

I understand that this is because of an class not getting loaded correctly, however how do i find it? I am using Hotspot 1.7, and on using -verbose:class I am not able to figure out the incorrectly loaded class.

Here is a listing from having verbose class loading enabled.

[Loaded com.bea.objectweb.asm.FieldVisitor from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded com.bea.objectweb.asm.MethodVisitor from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded com.bea.objectweb.asm.AnnotationVisitor from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded com.bea.objectweb.asm.commons.EmptyVisitor from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm.commons_1.2.0.0_3-2-0.jar]
[Loaded com.bea.objectweb.asm.ClassReader from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded com.bea.objectweb.asm.Attribute from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded com.bea.objectweb.asm.MethodWriter from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded weblogic.servlet.internal.WebAppInternalModuleExtension$PersistenceExtension from file:/C:/Oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar]
[Loaded weblogic.servlet.internal.WebAppInternalModuleExtension$SpringInstrumentationExtension from file:/C:/Oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar]
[Loaded weblogic.cacheprovider.coherence.CoherenceClusterContainer from file:/C:/Oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar]
[Loaded weblogic.servlet.internal.WebAppInternalModuleExtension$CoherenceCacheExtension from file:/C:/Oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar]
[Loaded weblogic.utils.enumerations.FileEnumeration from file:/C:/Oracle/Middleware/modules/com.bea.core.utils_2.0.0.0.jar]
[Loaded weblogic.utils.classloaders.DirectoryClassFinder$1 from file:/C:/Oracle/Middleware/modules/com.bea.core.utils.classloaders_3.0.0.0.jar]
[Loaded weblogic.utils.enumerations.EmptyFileContainerException from file:/C:/Oracle/Middleware/modules/com.bea.core.utils_2.0.0.0.jar]
[Loaded weblogic.utils.enumerations.FileEnumeration$NullDirectoryListException from file:/C:/Oracle/Middleware/modules/com.bea.core.utils_2.0.0.0.jar]
[Loaded weblogic.utils.enumerations.FileContainer from file:/C:/Oracle/Middleware/modules/com.bea.core.utils_2.0.0.0.jar]
[Loaded weblogic.utils.enumerations.LIFO_FileContainer from file:/C:/Oracle/Middleware/modules/com.bea.core.utils_2.0.0.0.jar]
[Loaded com.bea.objectweb.asm.Type from file:/C:/Oracle/Middleware/modules/com.bea.core.repackaged.asm_1.2.0.0_3-2-0.jar]
[Loaded weblogic.application.internal.flow.ModuleStateDriver$DestroyStateChange from file:/C:/Oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar]
[Loaded weblogic.application.utils.ExceptionUtils from file:/C:/Oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar]
[Loaded javax.management.RuntimeErrorException from C:\Java\JDK\JDK17~1.0_1\jre\lib\rt.jar]
[Loaded com.bea.logging.ThrowableWrapper from file:/C:/Oracle/Middleware/modules/com.bea.core.logging_2.0.0.0.jar]
<Oct 3, 2013 11:51:20 AM IST> <Error> <Deployer> <BEA-149205> <Failed to initialize the application "MyApp" due to error java.lang.ArrayIndexOutOfBoundsException: 48188
java.lang.ArrayIndexOutOfBoundsException: 48188
    at com.bea.objectweb.asm.ClassReader.readClass(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
    at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:45)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:145)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.ArrayIndexOutOfBoundsException: 48188
    at com.bea.objectweb.asm.ClassReader.readClass(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.accept(Unknown Source)
    at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:45)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:145)
    Truncated. see log file for complete stacktrace
Run Code Online (Sandbox Code Playgroud)

Any Hints as to how to proceed furthur?

Thanks!

eis*_*eis 7

基本上,它是部署中的错误类文件.有些lib有这些.

有什么不对的是,weblogic 12c没有捕获异常并记录罪魁祸首,因此可以找出它是哪一个.我会向Oracle提出这个问题所以他们会这样做.

请参阅Geronimo中的类似问题,他们将消息更改为警告而不是阻止部署.

关于哪个文件可能有问题的提示是,在12c中他们正在加载资源类,而他们在以前的版本中没有这样做,所以如果应用程序在以前的版本中工作,则可能是由于这一点.

至于如何找出它是哪个类,你可以将调试连接到weblogic实例并在java.lang.ArrayIndexOutOfBoundsException上添加异常断点,然后尝试检查上下文以找出参数.

  • 有同样的问题。我使用了 eclipse 中的调试器。这很容易,只是;在 Eclipse 中搜索 ArrayIndexOutofBoundException,然后在所有构造函数中放置一个断点,将 Eclipse 附加到您的服务器/进程中,并等待该行被命中,然后查看堆栈跟踪,有一个 URL 导致问题的方法(jarfile !班级名称)。谢谢你的提示,拯救了我的一天。 (2认同)