IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Charger des .jar dans la base


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 255
    Par défaut Charger des .jar dans la base
    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.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Avez-vous parcouru toute la doc ?
    http://download.oracle.com/docs/html/B12021_01/toc.htm

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 255
    Par défaut
    Merci pour la réponse.

    J'ai déja parcouru plusieurs documentations, dont celle que vous m'avez indiqué. De plus, TOUS les exemples sur le net n'utilisent pas de librairies externes, mais des programmes tous simples, qui évidemment ne peuvent que fonctionner.

    Je n'arrive notamment pas à trouver les informations suivantes :

    - Les classes d'un .jar chargé avec l'option "-jarasresource" sont-elles utilisables, ou faut-il que tous ses membres soient chargés (donc sans l'option "-jarasresource") ?

    - J'utilise JDK 1.6 en local pour compiler et exécuter mon programme. Ma base 10g a la version JDK 1.4, mais étant donné que je lui passe le code source et non le fichier .class, ça ne devrais pas poser de problème puisqu'il recompile en version 1.4 ?

    Lorsque je tente de charger un .jar sans l'option "-jarasresource", j'obtiens des dizaines d'erreurs ORA-29534 et ORA-29521 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    ORA-29534: referenced object SURVEY.org/apache/jackrabbit/webdav/ordering/Or
    derPatch could not be resolved
    errors   : class org/apache/jackrabbit/webdav/ordering/Position
    ORA-29521: referenced name java/lang/StringBuilder could not be found
    ...
    Je ne sais pas quoi faire.

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 255
    Par défaut
    OK donc c'était bien un problème de version de mes jar. J'ai essayer avec des jar en version < 1.4 (puisque la version intégré dans Oracle 10g est la 1.4) et ça fonctionne.

    Il faut aussi charger les jar sans l'option "-jarasresource" afin de loader toutes les classes (les jar ne sont pas ouverts lors de processus de résolution).

    Et il faut souvent ignorer les erreurs de résolution lors du chargement des classes contenues dans les jar (les références vers ces classes ne sont pas forcément utiles).

    Merci quand même.

    à+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 12h35
  2. Taille des vues dans la base de donnée
    Par Andry dans le forum Débuter
    Réponses: 5
    Dernier message: 21/01/2005, 22h06
  3. [Sécurité]Gestion des accès dans plusieurs bases
    Par vincentj dans le forum Débuter
    Réponses: 1
    Dernier message: 05/01/2005, 15h19
  4. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 19h54
  5. LYCOS ET MYSQL - Intégrer des images dans une base!
    Par archeo dans le forum Installation
    Réponses: 3
    Dernier message: 06/04/2004, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo