2013-10-03 23 views
5

Otrzymuję ten błąd podczas wdrażania aplikacji w Weblogic.Wyjaśnienie java.lang.ArrayIndexOutOfBoundsException podczas wdrażania aplikacji w WLS 12

<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 
> 

Rozumiem, że dzieje się tak z powodu niepoprawnego wczytania klasy, ale jak ją znaleźć? Używam Hotspot 1.7 i przy użyciu -verbose: klasa Nie jestem w stanie dowiedzieć się nieprawidłowo załadowane klasy.

Oto listing od włączenia pełnego ładowania klas.

[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 

Wszelkie wskazówki, jak postępować z furthur?

Dzięki!

Odpowiedz

7

Zasadniczo jest to zły plik klasy w ramach wdrożenia. Niektóre biblioteki mają takie.

Co jest nie tak, że weblogic 12c nie wychwytuje wyjątku i nie rejestruje winowajcy, więc można się dowiedzieć, który to jest. Chciałbym poruszyć tę kwestię z Oracle, aby to zrobili.

Zobacz similar issue in Geronimo gdzie zmieniono komunikat, aby ostrzec i nie uniemożliwiać wdrożenia.

Wskazówką, który plik może być problematyczny, jest in 12c they are loading resource classes as well which they did not do in previous versions, więc jeśli aplikacja działa w poprzedniej wersji, może to być spowodowane tym.

Aby dowiedzieć się, która to klasa, można podłączyć debugowanie do instancji serwera blogów i dodać wyjątek wyjątku w java.lang.ArrayIndexOutOfBoundsException, a następnie spróbować sprawdzić kontekst, aby znaleźć parametry.

+0

Wypróbuję i opublikuję .. dzięki za napiwek! –

+1

Miał ten sam problem. Użyłem debuggera z zaćmienia. To było łatwe, po prostu; Wyszukaj wyjątek ArrayIndexOutofBoundException w środowisku Eclipse, a następnie umieść punkt przerwania we wszystkich konstruktorach, załącz Eclipse do swojego serwera/procesu i poczekaj, aż linia zostanie trafiona, a następnie spójrz na stos stosu, istnieje metoda z adresem URL powodującym problem (plik_jakościowy !Nazwa klasy). Dzięki za napiwek, uratowałeś mój dzień. –

+0

będąc leniwym Właśnie dodałem instrukcję System.out.println do weblogic.application.utils.annotation.ClassfinderClassInfos, aby wydrukować przetwarzaną klasę (patrz http://www.javamonamour.org/2016/01/weblogic-deployment- fails.html) – PierluigiVernetto

Powiązane problemy