Мы хотели бы предоставить доступ к некоторым нашим EJB-компонентам из Excel. Цель состоит в том, чтобы предоставить API, который можно использовать из VBA.
Наши EJB - это в основном сеансовые компоненты без сохранения состояния, которые выполняют простые операции CRUD с POJO.
Некоторые возможные решения:
Указатели на фреймворки для этого решения или другие идеи приветствуются.




Вы можете взглянуть на IIOP.NET, который решает эту проблему.
Если у вас есть довольно новый контейнер ejb, самым дешевым и простым должно быть предоставление bean-компонентов как веб-сервисов и их вызов из VB / C#. Для этого не требуется никаких дополнительных инструментов или библиотек.
Еще во времена VB6 / COM / DCOM мы использовали набор J-Integra для выполнения этой задачи. Однако у меня нет опыта работы с версией .NET.
Я очень рекомендую ИКВМ. Это байт-код Java для компилятора сборки .NET (например, JAR -> DLL), и я использовал его для создания живых ссылок JMX и слушателей на сервере автоматизации Excel. Вам не составит труда создать сборку .NET из ваших клиентских заглушек EJB и вспомогательных библиотек.
// Николай
Я работаю над проектом с открытым исходным кодом под названием XLLoop - эта структура позволяет вам предоставлять функции POJO как функции Excel.
Это состоит из:
Вы можете встроить этот сервер java-функций в EJB и развернуть его как часть вашего сервера приложений.
Вы можете попробовать Обба (я работаю над этим проектом):
Obba is a Java object handler for spreadsheet applications.
It provides a bridge between spreadsheets and Java classes, such that spreadsheets can be used as graphical user interface for Java libraries. Accessing your Java library form the spreadsheet requires no glue code (no VBA needed, no special Java code needed). Objects are instantiated by their original constructor. Constructors and methods are invoked using a "by name" reflection. A spreadsheet-specific factory method is not necessary. Obba provides the functions to handle objects in spreadsheets.
The Java virtual machine providing the add-in may run on the same computer or a remote computer - without any change to the spreadsheet, i.e., object referenced in the spreadsheet can reside on remote Java virtual machine.
Спасибо за ответ, я разберусь, но это кажется очень интересным