Bonjour,
J'ai crée une procédure stockée faisant appel à du code Java. Le problème est que lors de l'exécution PL/SQL, le message d'erreur suivant apparaît :
Le bout de code en question est le suivant:ORA-29532: appel Java arrêté par une exception Java non interceptée : java.lang.NoClassDefFoundError
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "HASH_SHA1" AS package pg_hash_sha1; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.xml.security.utils.Base64; public class hash { public static String sha1 (String passwdClair) { byte[] uniqueKey = passwdClair.getBytes(); byte[] hash = null; try { // on récupère un objet qui permettra de crypter la chaine hash = MessageDigest.getInstance("SHA-1").digest(uniqueKey); } catch (NoSuchAlgorithmException e) { throw new Error("no SHA-1 support in this VM"); } String buffer = Base64.encode(hash); return buffer; } }; /
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE OR REPLACE FUNCTION hash_blog(p_content varchar2) RETURN varchar2 AS LANGUAGE JAVA NAME 'pg_hash_sha1.hash.sha1(java.lang.String) return java.lang.String'; / SELECT hash_blog('4238960308960013') FROM dual;
Avez-vous une idée pour résoudre cette erreur ?
Merci par avance
Partager