I know
that the library is be loaded, and I am fairly certain that the linkage is
correct because the class performs as expected when invoking interactively, e.g.
java Hello. I failed to mention earlier that this works on NT, but not
HP-UX. I have also read postings that indicate this is an issue on other
versions of UNIX as well. Has anyone accomplished this on UNIX? If
so, were there any special configuration issues?
Eric.
-----Original Message-----
From: Russell Freeman [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, December 05, 2000 10:48 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Tomcat, JNI and HP-UX
From: Russell Freeman [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, December 05, 2000 10:48 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Tomcat, JNI and HP-UX
I have
some tips from experience with both Win32 and AIX platforms. I'm assuming that
HP UK C dynamic link libraries are built similar to AIX
ones...?
- JDK
1.18 uses JNI version 1.0 bindings by default. Use the -jni option with javah to
create a JNI 1.1 style C headers. These are easier to link
with.
- Make
sure you use the generated header for the basis of the function implementation
(rather than copying by hand). This will ensure you get the function header
exactly right.
- The
unsatified link exception can occur for many reasons: the library is not found
(not on the LIBPATH for instance), the method wasn't resolved (not exported or
wrong signature in C)
Given
the following java class with natic methods:
package a.b;
public
class c {
public native void doSomething()
{}
public native void doSomethingElse()
{}
}
You
will need an export file with your so/shared library/DLL containing the mangled
function prototypes, For example, in foo.exp ( the export file for the
library foo.so ) I have: -
Java_a_b_c_doSomething
Java_a_b_c_doSomethingElse
This is the JNI 1.1 C export for the above
java code.
-----Original Message-----
From: Eric Lee (LYN) (EUS) [mailto:[EMAIL PROTECTED]]
Sent: 05 December 2000 14:45
To: '[EMAIL PROTECTED]'
Subject: Tomcat, JNI and HP-UX
I am using Tomcat 3.1 on HP-UX 10.20 with Java version ("HP-UX Java C.01.18.03 05/12/2000 16:31:36 hkhd02") I am attempting to use a servlet that instantiates a class that contains JNI methods and I keep getting java.lang.UnsatisfiedLinkError exceptions when these native methods are accessed. The JNI methods execute fine from the command line with Java interpreter, I also know that the servlet is loading the shared library. There are similar postings in the mailing list archives but they are without response. If anyone has any comments, I sure would appreciate them.
Many Thanks,
Eric Lee
