Problem with a Java agent : classloader

Hello,

I created a java agent which load specific library.

I added .jar to the project by clicking the Edit Project

button and browsing to the directory where the file is located and I put dll file into C:\Lotus\domino.

I ran my agent (by web page) and it works well the first use but now, I’ve an error !

HTTP JVM: java.lang.UnsatisfiedLinkError: Native Library C:\Lotus\Domino\pdf_java.dll already loaded in another classloader

I don’t know what happen !

I tried to put .jar and .dll into C:\Lotus\domino but always the same error…

It’s the first time that I use java in notes and my knowledge is not very big (as my english ^^')

Thanks for your help

Vincent

Subject: Problem with a Java agent : classloader

http://www-10.lotus.com/ldd/nd6forum.nsf/7524faba161e725085257050006f194c?OpenForm&ParentUNID=670305247B89F1C18525758900509FEA

I have found a Technote about your issue 1114724 :

Error: “db2jdbc.dll Already Loaded in Another Classloader” Running Java Agent

Technote (FAQ)

Problem

A Java agent is written to use the DB2 JDBC or another JDBC driver to access a database. When it is initially run the agent may work, however, subsequent attempts to run the agent fail with the following error:

  "java.sql.SQLException: java.lang.UnsatisfiedLinkError: Native Library C:\SQLLIB\BIN\db2jdbc.dll already loaded in another classloader." 

Solution

In order for a Java agent to successfully use this driver a second time, the .dll should be added to the Notes program directory.

In this case, the agent was being run manually from a client. The DB2 client was loaded in C:\SQLLIB\BIN. The Notes client was located in C:\Lotus\Notes. Copying the db2jdbc.dll from C:\SQLLIB\BIN to C:\Lotus\Notes resolved the problem.

I hope that this help you