Onde colocar um arquivo .so ou .dll (biblioteca) no projeto EAR?

1 resposta
P

Pessoal, estou desenvolvendo uma aplicação que precisa fazer chamadas de sistema e recuperar algumas informações do sistema operacional Linux.

A principio, eu tenho uma api que carrega em memória uma biblioteca, de nome “so_info.so”, o jar da api está como dependencia no maven.

Bom, começa ai o problema, teremos um EJB que funcionará como serviço para diversas aplicações distribuiídas. Todas dentro do mesmo ambiente (jboss). Acontece que a api que usa JNI e usa essa biblioteca, necessita que a biblioteca esteja no mesmo nivel de pastas que a api, ou seja, info.jar precisa estar junto com so_infor.so!

Bom, como eu posso fazer isso? Como resolver meu problema? O meu projeto EAR tem apenas os módulos EAR e EJB, onde eu devo colocar esse arquivo .so de forma que ao construir o EAR ele deixe o arquivo no mesmo nível da biblioteca?

Obrigado!

1 Resposta

A

Uma solução para este problema é encapsular a DLL como um recurso do EJB e extrair esta DLL em tempo de execução antes de carrega-la na JVM. Veja o artigo “Projeto EAR com DLL” em:

Este artigo apresenta a solução de um problema praticamente igual, porém um pouco mais complicado porque utiliza Maven e alguns de seus plugins.

Criado 2 de março de 2012
Ultima resposta 21 de fev. de 2014
Respostas 1
Participantes 2