Problema com JNI em ambiente EE

3 respostas
zepunk

Olá pessoal.
Estou fazendo uma aplicação que envia dados via USB utilizando uma DLL, para isto utilizei JNI.
Minha aplicação funciona normalmente, envia os dados da forma esperada.
Pensando achei que seria interessante fazer esta aplicação via WEB, estou utilizando vraptor. Porém ao fazer a chamada para envio dos dados da mesma forma com que é feita via aplicação desktop, ele dá problema com ao fazer o load da dll.

// classe que tem acesso JNI
public class VagaLumeJNI {
	private static boolean isLoaded = false;
	static {
		String pathDLL = VagaLumeJNI.class.getResource("/").getFile();

		pathDLL = pathDLL.replaceFirst("/", "");

		System.load(pathDLL + "EngineVagaLume.dll");

	public native void sendBinaryPort(short bit);

}

//classe que faz a chamada

public class WindowsEngine implements Engine {

	private VagaLumeJNI jni = new VagaLumeJNI();

	public synchronized void sendBinaryPort(short bit) throws DeviceNotFound {

		try {

			jni.sendBinaryPort(bit);

		} catch (Exception e) {
			throw new DeviceNotFound();
		}
	}
}

quando eu chamo o sendBinaryPort via aplicação JEE lança excption

Alguém sabe o que esta acontecendo ???

3 Respostas

java.rco

Amigo nunca trabalhei com JNI, mais pela msg do servidor acredito que essa DLL esteja disponibilizada em algum diretório que seja shared-lib do appServer, ou alguma outra aplicação já levantou isso, ele está dizendo que outra aplicação já carregou essa DLL

B

De uma olhada no post talvez ajuda:

http://forum.java.sun.com/thread.jspa?threadID=633985&messageID=9939384

Abs,

Bruno Tafarelo

B

EDITADO

a dll está sendo utilizada e o recurso não foi liberado( por exemplo a aplicação ainda esta aberta a utilizando).

Criado 26 de junho de 2008
Ultima resposta 26 de jun. de 2008
Respostas 3
Participantes 4