Какой наилучший способ доступа к COM-интерфейсам с сервера J2EE?

#java #com #jakarta-ee #com-interop

#java #com #джакарта-ee #com-взаимодействие

Вопрос:

Подходят ли доступные мосты Java-COM, такие как j-Integra, com4j и Jacob, и другие для использования в контейнере J2EE? Какой из них наиболее подходит для этого использования? Мне нужно оценить риск сбоев JVM, утечки встроенной памяти и создания неуправляемых потоков (поскольку это не рекомендуется в контейнере J2EE, использующем пулы потоков) для доступных сегодня мостов Java-COM.

Комментарии:

1. Я провел некоторое исследование и нашел библиотеку j-Interop, которая не использует машинный код (это чистая Java с использованием RPC). Кажется, это более подходящее решение для использования на сервере J2EE, чем другие мосты Java-COM.

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

3. @Adam: Я опубликовал комментарий вместо ответа, потому что пока не уверен, можно ли считать j-Interop «дружественным к J2EE».

4. Во время моих тестов я обнаружил, что j-Interop запускает неуправляемые дочерние потоки. Это не идеально подходит для использования на сервере J2EE с потоками, управляемыми пулом потоков.

Ответ №1:

Я использовал те мосты, о которых вы упомянули. Я бы выбрал совсем другой подход из-за того, что вы сказали: сбои, утечки памяти и многое другое.

У меня был бы небольшой Windows Server, использующий COM-компоненты, поскольку это его родная среда. На этом маленьком сервере Windows вы можете предоставить некоторые HTTP-интерфейсы (ВЕБ-запросы), которые вы можете использовать на своем сервере Java EE для доступа к COM-компонентам через Windows Server. Этот сервер Windows может быть IIS с ASP.NET сервер или пользовательская программа с проприетарным протоколом, который вы можете написать на C #, C , C, VB.NET.

На мой взгляд, это ваш самый безопасный выбор. Это избавит вас от множества головных болей при переходе в рабочий режим.

Комментарии:

1. Это очень интересный подход. Веб-служба в IIS может безопасно инкапсулировать COM-интерфейс на сервер J2EE.

Ответ №2:

Одна из причин, по которой вам необходимо использовать JAVA-COM bridge, заключается в том, что вам нужна некоторая функциональность на базе Windows, которая недоступна в системе на базе Unix. Несколько лет назад в Unix не было MS WORD, JAVA API EXCEL были доступны. Поэтому, если возможно, попробуйте использовать собственные JAVA API для достижения функциональности на базе Windows. Например, с помощью APACHE POI. Установка J-Integra на компьютере с высокими параметрами безопасности является сложной задачей и требует особого рассмотрения.