J'essaie d'exécuter Java Advanced Imaging (JAI) dans un conteneur OSGi (spring-dm). Je suis en mesure d'accéder aux bibliothèques jaï, mais l'erreur suivante quand je l'appelle pour la première JAI du temps:Exécution de JAI dans OSGi
Error: Could not load mediaLib accelerator wrapper classes. Continuing in pure Java mode. Occurs in: com.sun.media.jai.mlib.MediaLibAccessor com.sun.media.jai.mlib.MediaLibLoadException
Les DLL sont sur le chemin de classe et référencées comme les bibliothèques Bundle-NativeCode dans mon Manifest. Est-il possible d'exécuter les DLL JAI natives dans OSGi? Si oui, que dois-je faire?
(edit: précisions)
J'ai téléchargé la bibliothèque de Windows et extrait JARs JAI et DLLs du package de téléchargement.
Mainfest:
Manifest-Version: 1.0 Bundle-Name: Java Advanced Imaging Bundle-SymbolicName: javax.media.jai Bundle-Version: 1.1.3 Bundle-ClassPath: libs/, jai_codec.jar, jai_core.jar, mlibwrapper_jai.jar Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-NativeCode: libs/mlib_jai_mmx.dll; osname=WindowsXP; processor=x86, libs/mlib_jai_util.dll; osname=WindowsXP; processor=x86, libs/mlib_jai.dll; osname=WindowsXP; processor=x86 Export-Package:
Il n'y a pas grand chose si info pour continuer. Où avez-vous reçu les paquets JAI? Avez-vous roulé le vôtre? Quels classpath sont les DLL natives - le classpath du bundle? Je suspecte le problème habituel de visibilité de classe ou le mécanisme pour charger la DLL native utilise la méthode de la plate-forme de localiser des bibliothèques (PATH, LD_LIBRARY_PATH, ...) plutôt que du classpath. – SteveD