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

Glassfish et Payara Java Discussion :

Comment charger un jar avec un propriéte dans le domain.xml


Sujet :

Glassfish et Payara Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comment charger un jar avec un propriéte dans le domain.xml
    Bonjour ,

    Je fais actuellement des test pour passer de Oracle à Glassfish . Je dois me connecter à des serveurs LDAP . Pour me connecter au ldap avec Oracle je lui charger un jar fwk-startup-1.0.3.jar avec un fichier de propriété dk_ldap_directory.properties dans le server.xml comme suit :

    <init-library path="/opt/appdata/fwk-startup/fwk-startup-1.0.3.jar" />
    - <startup-classes>
    - <startup-class classname="com.fwk.oc4j.init.LdapConfigInitializer" failure-is-fatal="false">
    <execution-order>0</execution-order>
    - <init-param>
    <param-name>ldap-config-file</param-name>
    <param-value>/opt/appdata/fwk-startup/dk_ldap_directory.properties</param-value>
    </init-param>
    </startup-class>

    J'ai essayé de faire la même chose avec glassfish dans le domain.xml en utilisant un lifecycle-module mais ceci ne marche pas :

    <lifecycle-module class-name="com.fwk.oc4j.init.LdapConfigInitializer" classpath="/opt/appdata/fwk-startup/fwk-startup.jar" enabled="true" is-failure-fatal="true" object-type="system-all" name="ldap-config-file" >
    <property name="ldap-config-file" value="/opt/appdata/fwk-startup/dk_ldap_directory.properties"/>
    </lifecycle-module>

    J'utilise Glassfish v2.1. Je n'ai pas erreur de compilation , glassfish redémarre sans aucun problème mais il ne me charge pas la classe . Ma société veut que je trouve la même solution sans modifier le code .

    Merci d'avance pour votre aide

    Bon journée

    Christophe

  2. #2
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Qu'est censé faire ce fichier JAR? C'est une bibliothèque? De quel serveur LDAP s'agit-il?

    Un lifecycle module dans GlassFish est un bout de code exécuté à des moments précis dans le cycle de vie du serveur (par instance donc) et définis dans domain.xml. Je pense que tu dois écrire un tel module pour effectué des appels vers le code existant...

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut Alexis,

    Désolé pour le temps de réponse , le jar correspond au framework de l'application. Lorsque que tu te connecte sur l'application le framework se connecte en premier au LDAP ( sun directory ) pour récupérer des informations sur le profil . Le fwk a besoin d'avoir le fichier dk_ldap_properties pour connaître quelle LDAP binder et avoir les identifiants .J'ai pu vérifier que glassfish se connecte au LDAP sans aucun problème , car l'application que je déploie contient aussi un dk_ldap-propertie et le fwk prend soit celui du serveur ou celui de l'application.
    Etant donné que je ne veux pas modifier le code de l'appli , j'ai essayé de mettre un ressource JDNI extérieur grâce à la console :


    <resources>
    <external-jndi-resource enabled="true" factory-class="com.decathlon.fwk.oc4j.init.LdapConfigInitializer" jndi-lookup-name="/opt/appdata/fwk-startup/dk_ldap_directory.properties" jndi-name="ldap/decathlon-config" object-type="user" res-type="java.util.Properties">
    <description>test</description>
    </external-jndi-resource>

    Je charge la librairie fwk-startup dans le system path et il met cette erreur dans les logs du serveur car il n'arrive pas à compiler

    [#|2009-11-06T10:47:37.212+0100|WARNING|sun-appserver2.1|javax.enterprise.system.stream.err|_ThreadID=10;_ThreadName=main;_RequestID=0bd82323-d867-4343-9cdb-cafc5c631a2d;|java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.sun.enterprise.server.PELaunch.main(PELaunch.java:415)
    Caused by: java.lang.NoClassDefFoundError: com/evermind/server/OC4JStartup
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    at com.sun.appserv.server.util.ASURLClassLoader.loadClass(ASURLClassLoader.java:144)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at com.sun.enterprise.resource.ResourceInstaller.loadObject(ResourceInstaller.java:1199)
    at com.sun.enterprise.resource.ResourceInstaller.installExternalJndiResource(ResourceInstaller.java:1242)
    at com.sun.enterprise.resource.ResourceInstaller.installExternalJndiResources(ResourceInstaller.java:1322)
    at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:264)
    at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:414)
    at com.sun.enterprise.server.ApplicationServer.onInitialization(ApplicationServer.java:290)
    at com.sun.enterprise.server.ondemand.OnDemandServer.onInitialization(OnDemandServer.java:103)
    at com.sun.enterprise.server.PEMain.run(PEMain.java:399)
    at com.sun.enterprise.server.PEMain.main(PEMain.java:336)

    Merci d'avance

  4. #4
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com/evermind/server/OC4JStartup
    Cette classe ne peut effectivement pas se trouver dans GlassFish.
    Il semble y avoir une dépendance forte avec Oracle App Server...

    Est-ce spécifié dans /opt/appdata/fwk-startup/dk_ldap_directory.properties?

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/12/2009, 09h42
  2. [DAO] Comment gérer les liens avec la bdd dans mes classes?
    Par Wormus dans le forum Autres
    Réponses: 6
    Dernier message: 22/02/2006, 16h14

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