java.lang.ArrayIndexOutOfBoundsException lors du Déploiement d'application dans WLS 12
J'obtiens ce message d'erreur lors du déploiement d'une application dans 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
>
Je comprends que c'est parce que d'une classe n'obtenant pas chargé correctement, mais comment puis-je le trouver?
Je suis en utilisant Hotspot 1.7, et sur l'utilisation de l'-verbose:classe je ne suis pas en mesure de comprendre la manière incorrecte chargés de classe.
Voici une liste de avoir détaillé de chargement de classe activé.
[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
Tous les Conseils sur la façon de procéder d'autres personnes?
Merci!
OriginalL'auteur Yogesh_D | 2013-10-03
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, c'est un mauvais fichier de classe à l'intérieur de votre déploiement. Certaines libs sont ceux.
Quel est le problème il est que weblogic 12c n'est pas la capture de l'exception et de la connexion la coupable si l'on pouvait savoir de laquelle il s'agit. Je tiens à soulever cette question avec Oracle sorte qu'ils ne puissent le faire.
Voir problème similaire dans Geronimo où ils ont modifié le message pour avertir et ne pas empêcher le déploiement.
Un indice quant à ce qui pourrait être problématique, c'est que en 12c le chargement de la ressource cours de laquelle ils ne le font pas dans les versions précédentes, donc si l'application fonctionne dans une version précédente, il peut être dû à ça.
À comment faire pour savoir quelle classe il est, vous pouvez brancher le débogage de votre instance weblogic et ajouter une exception de point d'arrêt sur l'île de java.lang.ArrayIndexOutOfBoundsException, puis essayez d'examiner le contexte pour trouver les paramètres.
Eu le même problème. J'ai utilisé le débogueur à partir d'eclipse. C'était facile, il suffit d'; Recherche ArrayIndexOutofBoundException dans Eclipse, puis placer un point d'arrêt à tous les constructeurs, joindre eclipse sur votre serveur/des processus, et d'attendre pour la ligne à frapper, puis regardez dans la stacktrace, il existe une méthode avec l'URL de l'origine du problème (jarfiles!classname). Merci pour l'astuce, a sauvé ma journée.
être paresseux, j'ai juste ajouté un Système..println déclaration de weblogic.application.utils.annotation.ClassfinderClassInfos pour imprimer la classe en cours de traitement (voir la section javamonamour.org/2016/01/weblogic-deployment-fails.html )
Je ne suis pas sûr de ce qui serait le plus paresseux de l'option, l'application de correctifs weblogic classes avec un code personnalisé ou de crochet de débogage à l'instance 🙂 Bonne information quand même.
je ne suis pas si sûr de cela. j'ai cette erreur lors du déploiement d'une oreille, mais quand même code est déployé comme un explosa à oreille fonctionne très bien. Peut-être quelque chose à voir avec les lambdas dans les classes en cours de numérisation.
OriginalL'auteur eis
Pour moi, c'était à propos de l'utilisation de Java 8 flux lambda dans un
private
méthode d'une classe qui était une source de Haricot. Weblogic la version 12c , 12.1.3 ) dans l'IDE Eclipse.Je pense qu'il y a un problème sur le haricot création au Printemps 3.1 avec Java 8.
J'ai eu un
Set<String>
et m'a demandé de le convertir enSet<Long>
et à cette fin, lorsque j'ai utilisé l'expression comme ,strSet.stream().map(s -> Long.parseLong(s)).collect(Collectors.toSet());
,J'ai commencé à recevoir cette
java.lang.ArrayIndexOutOfBoundsException
tandis que le déploiement de serveur.Alors, quand j'ai changé le code pour effectuer une itération sur
Set<String>
et ajouter àSet<Long>
après l'analyse , l'erreur a disparu.C'était un héritage Spring MVC 3.1 Application, Weblogic Server démarre avec JDK 8 , Eclipse montre pas d'erreurs, que ce soit & Projet Eclipse Facette a été mis à Java 1.8 .
OriginalL'auteur Sabir Khan
Un autre problème, que je suis pour l'ajout de prospérité, car il m'a causé un beaucoup de maux de tête, c'est le Printemps version fournie avec WebLogic 12c. WebLogic 12c est livré avec le Printemps les 3.x, et qui ne comprennent pas Java 8 fichiers de classe avec les expressions lambda.
Un facteur de complication est qu'il a bien fonctionné sur un local WebLogic exemple sur ma machine de développement, mais pas sur l'Oracle Cloud instance.
La solution est-à-dire WebLogic utilisation de la version de Printemps qui est fourni avec votre application web, en ajoutant le
weblogic.xml
dans leWEB-INF
répertoire (src/main/webbapp/WEB-INF
si vous utilisez Maven).Et qui a résolu le problème pour moi.
OriginalL'auteur SeverityOne