Как правильно использовать JNI с Java EE (Servlets) в Windows? - PullRequest
0 голосов
/ 24 марта 2011

Я пытаюсь понять, как правильно использовать JNI из сервлета.

Как я понимаю, есть несколько проблем:

  1. В случае сбоя встроенной библиотеки DLL весь сервер приложений будет остановлен
  2. Если DLL загружена одним загруженным классом, другой загрузчик классов не сможет загрузить и использовать его.

Я искал в интернете и нашел пару возможных решений

  • Создание автономного приложения с поддержкой JMS и использование JMS в Servlet для связи с ним.
  • Запустите автономный сервер, загрузите в него JNI и поговорите с ним через RMI
  • Использовать архитектуру Java Connector

Буду признателен за любую информацию по этому вопросу, какова наилучшая практика в этом случае?

P.S. Я не уверен, важно ли это, но приложение, которому нужно использовать собственную DLL, работает на JBoss.

1 Ответ

1 голос
/ 24 марта 2011

Я бы абсолютно не запускал инструмент на основе JNI на сервере приложений Java EE.Ваше предложение по использованию JMS является хорошим.Вы можете создать службу на основе Beans-сообщений для ответа на сообщения, отправляемые вашей внешней службой:

http://oreilly.com/catalog/entjbeans3/chapter/ch13.html

Вот ссылка на документацию Oracle Java EE по компонентам, управляемым сообщениями:http://download.oracle.com/javaee/5/tutorial/doc/bnbpk.html

Я бы посоветовал заставить два сервера JBoss общаться друг с другом через JMS проще, чем написать адаптер JCA, а бины, управляемые сообщениями JMS, являются более чистым интерфейсом.JCA, кажется, не развивается вообще - кажется, нет хороших руководств по реализации (это только мое восприятие).

...