Skip to main content

Problem:

Application von SX4.0 SP2 für  Server Unixware 7.1

Problem:

Aufruf eines prozeduralen Cobol-Programms von JAVA über das JNI, nachgestellt an Hand des Testbeispiels calc_pi aus dem DEMO Verzeichnis PI des Net Express 4.0:

Das Programm funktioniert unter Windows 2000 sowohl von der Kommandozeile als auch im Fenster. Das Programm wurde auf ein Unixware System portiert und dort mit dem Programm cobjrun in einer Terminalsession ausgeführt. Es funktioniert.

Nun wurde die Klasse calc_pi innerhalb von Tomcat ausgeführt. Tomcat selbst wurde mt cobjrun gestartet.

Es kommt die folgende Fehlermeldung:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no libcobjvm_unx_142 in java.library.path

        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)

        at java.lang.Runtime.loadLibrary0(Runtime.java:788)

        at java.lang.System.loadLibrary(System.java:834)

        at

com.microfocus.cobol.RuntimeSystem.<clinit>(RuntimeSystem.java:529)

        at calc_pi.<clinit>(calc_pi.java:82)

Resolution:

Hinweis:

Das J2SE ist nicht für "loaded into multiple class loaders"  implementiert.

Lösung:

Die Lösung ist der J2EE Connector in Micro Focus Enterprise Server.

Falls  COBOL in einem Tomcat JSP container benötigt wird , dann ist unsere empfohlene Lösung den  "J2EE connector to ES" zu nutzen.

Old KB# 3866