Bonjour,

J'ai besoin d'exécuter un programme Java depuis PL/SQL (loadjava / CREATE JAVA.).

Mon programme Java fonctionne parfaitement en local.

Avec CREATE JAVA, le simple programme de test suivant fonctionne pafaitement :

Code : 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
create or replace and compile java source named Hello as
public class Hello
{
  public Hello() {
  }
  public static String world()
  {
    return "Hello world";
  }
}
 
 
CREATE OR REPLACE FUNCTION helloworld RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'Hello.world () return java.lang.String';
/
 
select helloworld() from dual
Néanmoins mon programme utilise des librairies externes (.jar). Et je ne sais pas comment les "lier" à mon programme une fois dans la base.

Evidement si j'ajoute un import dans ce petit programme, ça ne passe plus. Comment puis-je charger ces .jar ?


J'ai essayer des les charger via loadjava :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\commons-httpclient-3.1.jar
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\commons-logging-1.1.1.jar
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\slf4j-nop-1.6.1.jar
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\slf4j-api-1.6.1.jar
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\jackrabbit-webdav-2.1.0.jar
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\jackrabbit-jcr-commons-2.1.0.jar
loadjava -user user/pass@dbhost -jarasresource -resolve C:\jdevstudio1013\jdev\lib\commons-codec-1.4.jar
Aucune erreur, mais lorsque je tente de charger ma classe, il semble qu'il ne trouve toujours pas les .jar :

Code : 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
C:\DevSuiteHome_1\BIN>loadjava -user user/pass@dbhost -resolve C:\jdevstudio1013\jdev\mywork\webdav\Project1\classes\project1\Acc
esDFS.class
errors   : class project1/AccesDFS
    ORA-29521: referenced name org/apache/jackrabbit/webdav/client/methods/PropF
indMethod could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/HttpClient could no
t be found
    ORA-29521: referenced name org/apache/jackrabbit/webdav/client/methods/DavMe
thod could not be found
    ORA-29521: referenced name org/apache/jackrabbit/webdav/MultiStatus could no
t be found
    ORA-29521: referenced name org/apache/jackrabbit/webdav/MultiStatusResponse
could not be found
    ORA-29521: referenced name org/apache/jackrabbit/webdav/DavException could n
ot be found
    ORA-29521: referenced name java/lang/StringBuilder could not be found
    ORA-29521: referenced name org/apache/jackrabbit/webdav/client/methods/PutMe
thod could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/methods/InputStream
RequestEntity could not be found
    ORA-29521: referenced name project1/AccesDFS$1 could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/methods/EntityEnclo
singMethod could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/HostConfiguration c
ould not be found
    ORA-29521: referenced name org/apache/commons/httpclient/MultiThreadedHttpCo
nnectionManager could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/params/HttpConnecti
onManagerParams could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/HttpConnectionManag
er could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/UsernamePasswordCre
dentials could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/HttpState could not
 be found
    ORA-29521: referenced name org/apache/commons/httpclient/HttpMethod could no
t be found
    ORA-29521: referenced name org/apache/commons/httpclient/methods/RequestEnti
ty could not be found
    ORA-29521: referenced name org/apache/commons/httpclient/Credentials could n
ot be found
The following operations failed
    class project1/AccesDFS: resolution
exiting  : Failures occurred during processing
 
C:\DevSuiteHome_1\BIN>
Je galère là dessus depuis un petit moment, si quelqu'un à une idée ça serait super.

Merci de m'avoir lu.