JNI – Identifying Dependent Libraries

Bis vor einigen Tagen habe ich an einem Projekt gearbeitet, welches sich mit dem automatischen (Semantic) Webserivce Composition planning beschäftigt. Aufgabe war es dabei direkt aus einem BPMN 2.0 Prozessmodell auf der Grundlage von Ontologien und Semantischen Webservice-Beschreibungen eine Webservice-Sequenz zu erzeugen. Sowohl das Modellierungstool (Oryx) als auch der Webservice-Planer (OWLS xPlan vom Deutschen Forschungszentrum für künstliche Intelligenz) existierten bereits, sodass unsere Aufgabe in der Verknüpfung der beiden Komponenten lag.

Das Problem nun in der Anbindung des Planers (c++) an oryx (java), welche mit dem JNI (Java Native Interface) realisiert ist. Nachdem die Library in das Projekt eingebunden war, wurden wir dem Fehler

xxx.dll: can’t fint dependent libraries

konfrontiert. Zunächst war leider absolut unklar, wieso dieses Problem auftrat, da im Vorfeld alle mitgelieferten Libraries eingebunden wurden. Die Frage war nun, wie komme ich an weitere Informationen über die fehlenden “dependent libraries”. Die Lösung hierfür lieferte ein Tool namens Dependency Walker, welches das Auslesen von Abhängigkeiten von Dlls ermöglicht. Ich habe also einfach die xxx.dll mit dem Tool geladen und sofort erschienen ein paar tolle rote Meldungen, dass Libraries fehlen würde (wie es Java mit seiner Fehlermeldung ja auch schon getan hat). Hier wurde allerdings auch angezeigt, welche Libraries fehlen. Habe mir dann also die entsprechenden Dlls im Netz besorgt, ins Projekt eingebunden und siehe da… läuft

Bevor man allerdings so vorgeht sollte man noch sicherstellen, dass der Pfad zu den verwendeten Libraries auch in den Systempfaden hinterlegt ist.

Getagged mit: , , , , , , , ,
Veröffentlicht unter Entwicklung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*