|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Inscription : mai 2006 Messages : 5 ![]() |
Bonjour tout le monde,
j'utilise l'API Jexcelapi pour générer des fichiers à partir de donnée oracle. J'ai créé cette classe: Code :
Maintenant j'essaye d'en faire une java stored procedure sous une database 9iR2 (9.2.0.6) sous HPUX: je mets donc cette partie de code en commentaire: Code :
Code :
je me suis créé une procedure PL/SQL ORA2XLS comme ceci: Code :
SQL> execute ora2xls('blabl'); Debut:Wed Jan 10 16:03:23 CET 2007 java.lang.AbstractMethodError: Error detected by bytecode verifier when class was created at jxl.write.biff.RowRecord.writeCells(RowRecord.java:275) at jxl.write.biff.SheetWriter.write(SheetWriter.java:440) at jxl.write.biff.WritableSheetImpl.write(WritableSheetImpl.java:1321) at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:839) at jxl.oracle.write.main(write.java:109) BEGIN ora2xls('blabl'); END; * ERREUR à la ligne 1 : ORA-29532: appel Java arrêté par une exception Java non interceptée : java.lang.AbstractMethodError: Error detected by bytecode verifier when class was created ORA-06512: à "ORA2XLS", ligne 0 ORA-06512: à ligne 1 Je n'arrive pas a comprendre pourquoi il me retourne cette erreur. Donc si quelqu'un peut m'aider ca serait tres bien Pour info j'ai testé sur une 10gR2 et ca passe sans probleme. |
||||||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 349 ![]() |
à tout hazard ...
J'ai eu un jour lors du développement d'un PJC un pb à peu prés similaire. Sous JDEV et sous DOS, ce composant fonctionnait correctement mais sous Forms, il plantait sans que je puisse capter une exception . Le problème était que j'appellais la méthode indexOF de la classe StringBuffer à partir de JDEV ou DOS (VM 1.4.2) alors que Jinitiator à l'époque, utilisait la VM 1.3.1 et cette méthode n'existait pas d'où le problème ... Il n'est pas impossible que Jexcelapi utilise une méthode incompatible avec certaines VM. dans les différents environnements 9i et 10g CDLT. |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : mai 2006 Messages : 5 ![]() |
Oui ca doit etre un truc comme ca mais je ne sais pas comment verifier la java version à l'interieur de la base 9iR2.
Pour Jdev c'est: C:\ORA10IDS\jdev\bin>java -version java version "1.4.2_04" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05) Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode) C'est pourquoi je choisi -target 1.3 pour la compile puisqu'il me semble que c'est une version 1.3.1 dans la base. Je continue a chercher j'ai réussi à isolé une class specifique qui a "l'air" d'etre la cause: Code :
Je continue. Merci encore. Apres execution de ma procedure PL/SQL la vue USER_ERRORS contient l'erreur suivante: ORA-29552: avertissement de vérification : at offset 42 of jxl.write.biff.RowRecord.writeCells invokevirtual refers to an interface verifier is replacing bytecode at jxl.write.biff.RowRecord.writeCells:42 by a throw at offset 157 of jxl.write.biff.RowRecord.writeCells invokevirtual refers to an interface verifier is replacing bytecode at jxl.write.biff.RowRecord.writeCells:157 by a throw at offset 177 of jxl.write.biff.RowRecord.writeCells invokevirtual refers to an interface verifier is replacing bytecode at jxl.write.biff.RowRecord.writeCells:177 by a throw |
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 5 ![]() |
C'etait bien une histoire de compilation:
Il faut choisir target 1.1 dans les options de compilations et les class s'executent correctement. Par contre les difference de performance sont impressionantes entre une base 9i et une 10g: presque 10x plus lent en base 9i que 10g. En executant directement de Jdev ou en dos je traite environ 1Millions de cellules en 1 minutes sur la base 10g j'ai a peu prés les memes perf par contre en 9i c'est 800000 cellule en 8 minutes ..... Voila. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com