Wade Chandler wrote:

Annamalai Ramasamy wrote:

Hi.,
Yes,I did see my dll path using this line.
Thanks.,
MALAI
Ryan Lissack <[EMAIL PROTECTED]> wrote:
Hi,


Execute the following :

System.out.println(System.getProperty("java.library.path"));

See what directories are there. If the one(s) with your DLL(s) are not
listed you can add them as a startup param to the VM using the -D option
(java -Djava.library.path=.....)

HTH

Regards,
Ryan.

-----Original Message-----
From: Annamalai Ramasamy [mailto:[EMAIL PROTECTED]
Sent: 22 April 2004 16:33
To: Tomcat Users List
Subject: RE: Accessing Dll's


Hi., Check my below java code. I do not have native source codes.

I'm sure there is no version conflicts.
But i have copied the dll in more than one places..like winnt, system32 and
jre/bin like that.


any idea?

public class AddressValidate {

private Address inad;
private Address outad;
private String usercompany;

public StringBuffer csReturnErrorMsg;
public StringBuffer csReturnStreet;
public StringBuffer csReturnCityName;
public StringBuffer csReturnCounty;
public StringBuffer csReturnState;
public StringBuffer csReturnZip;
//To load DLL AvsWebInrterface static{
try{
System.loadLibrary("AvsWebInterface");
System.out.println("DLL Loaded"); }catch(Exception e){
System.err.println("Could not load DLL \"AvsWebInterface \" :
"+e.toString());
System.out.println("Could not load DLL \"AvsWebInterface \" :
"+e.toString());

}catch(Throwable e){
System.err.println("Could not load DLL \"AvsWebInterface:\"
"+e.toString());
System.out.println("Could not load DLL \"AvsWebInterface:\"
"+e.toString());
}
} //end of static
//--------------------------------------------------------------------------


-

//Native method implemented in cpp public native String JAVAAVSValidate (String company, String street1, String city, String state, String zip, StringBuffer csReturnStreet, StringBuffer csReturnCityName, StringBuffer csReturnCounty, StringBuffer csReturnState, StringBuffer csReturnZip, StringBuffer csReturnErrorMsg) ;
//--------------------------------------------------------------------------


-
public AddressValidate(){
inad=null;
outad=null;
usercompany=new String("");

}
//--------------------------------------------------------------------------


-
public String validate (Address inad,Address outad){
csReturnStreet=new StringBuffer(""); csReturnCityName=new StringBuffer(""); csReturnCounty=new StringBuffer(""); csReturnState=new StringBuffer(""); csReturnZip=new StringBuffer(""); csReturnErrorMsg=new StringBuffer(""); this.inad=inad;
this.outad=outad;



try{ // System.out.println("Street1 :"+inad.Street1); // System.out.println("city :"+inad.City); // System.out.println("state :"+inad.State); // System.out.println("postalcode"+inad.PostalCode);

JAVAAVSValidate (usercompany,
inad.Street1,
inad.City,
inad.State,
inad.PostalCode, csReturnStreet, csReturnCityName, csReturnCounty, csReturnState, csReturnZip, csReturnErrorMsg);
outad.Street1 = csReturnStreet.toString(); outad.City = csReturnCityName.toString(); outad.County = csReturnCounty.toString(); outad.State = csReturnState.toString(); outad.PostalCode = csReturnZip.toString(); // System.out.println("Street1 :"+outad.Street1);
// System.out.println("city :"+outad.City);
// System.out.println("state :"+outad.State);
// System.out.println("postalcode"+outad.PostalCode);


}catch(Exception e){
System.out.println("Error in Validating Address " + e.toString());
}

return (csReturnErrorMsg.toString());
}


}


Peter Guyatt wrote:
Hi There,

Can I see you native code and your class that declares you native methods.

Thanks

Pete

-----Original Message-----
From: Mark Schmeets [mailto:[EMAIL PROTECTED]
Sent: 22 April 2004 16:13
To: Tomcat Users List
Subject: Re: Accessing Dll's


Hi, Is it possible that this dll is being loaded somewhere else in your instance? My experience with this error came from trying to use the Oracle native JDBC drivers. It usually came down to one of three issues, first that the dll couldn't be "found", second that another web-app had already loaded it, third it was a dll versioning problem. Hope it helps.

Mark

Annamalai Ramasamy wrote:


Hi.,
Again same error.
I did put the dll to /jre/bin and winnt/system32.
Any other ideas please...
Thanks.,
MALAI

Hans Wichman wrote:
sorry, i meant lib\bin\ instead of lib\ext\

grtz
Sorv

At 03:43 PM 4/22/2004 +0100, Annamalai Ramasamy wrote:



Hi.,
Again Same Error..
Actually after the System.loadlibrary..i can able to see my
system.out.println values.
Then while trying to call my method i'm getting UnsatishfiedLinkError.
Thanks.,
MALAI

Hans Wichman wrote:
try putting them in the lib/ext folder of your j2sdk1.4.2_03 folder.

grtz
Sorv

At 03:24 PM 4/22/2004 +0100, Annamalai Ramasamy wrote:



Hi.,
I'm using Tomcat4.0.29 with J2SDK 1.4.2_03.
I have my native libraries(dll's) in winnt folder.
I'm loading the dll thru System.loadlibrary and accessing the methods.
I'm getting UnsatishfiedLinkError.
My class files are in my web-inf classes directory.
In forums i searcehed, and i tried out all possibility like
setting path and changing my classes to common/classes and all.
Please give me your suggestions...
Thanks.,
MALAI


--------------------------------- Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------- Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------- Yahoo! Messenger - Communicate instantly..."Ping" your friends today!


Download Messenger Now




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------- Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------
Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now

This may sound like a strange question, though I have not seen it asked. Are you using JNI? You have to use JNI to be able to access the methods. The library could load fine, but the DLL still not be found. Also, did you use javah to create your h file? If not this is your problem. You have a special set of entry points so the C code can be used by the java code. C++ name mangling causes issues, and the JNI has a special way it looks for method names. If you are not using JNI you can look it up in the latest java docs.


Wade



I meant the library could load fine and the methods still not be found in the dll. This is because of the naming conventions.

Wade.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to