Веб-приложения под Tomcat с использованием JNI
От: Цыба Украина  
Дата: 03.10.10 12:04
Оценка:
Здравствуйте!

Вот, столкнулись на проекте со следующей ситуацией, которая, по ходу, неизвестно решаема ли нормальным путём. Есть веб-приложение, работающее под Tomcat. Это приложение в силу некоторых требований должно использовать механизм JNI, причём используемые нативные библиотеки являются частью самого веб-приложения и развёртываются вместе с ним. Вроде бы, всё замечательно, но мы не учли один подводный камень, а именно тот факт, что после вызова System.load() используемая .dll (.so пока под Linux не проверяли, но кажется, там так же) не освобождается при переразвёртывании этого веб-приложения. В итоге директория с приложением после этого неудаляема, поскольку нативная библиотека уже загружена в память. Метода System.unload(), к сожалению, не существует. Ни Google, ни Stack Overflow не помогли... Получается, единственным способом удалить библиотеку при переразвёртывании является остановка JVM (в данном случае — Tomcat), что недопустимо. Неужели не существует хоть какого-то способа обойти эту проблему?

Спасибо за советы заранее.
tomcat jni redeployment
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.