我们希望允许从 Excel 访问我们的一些 EJB。目标是提供可从 VBA 使用的 API。
我们的 EJB 主要是无状态会话 Bean,它们使用 POJO 执行简单的 CRUD 操作。
一些可能的解决方案:
- 将 EJB 公开为 WebServices 并创建一个包装它们的 VB/C# dll,
- 使用 Corba 从 C# 访问 EJB,
- 创建一个使用 Java 访问 EJB 的 COM 库,
欢迎指出这些解决方案的框架或其他想法。
您可以查看解决此问题的IIOP.NET 。
如果您有一个相当新的 ejb 容器,最便宜和最简单的应该是将您的 bean 公开为 Web 服务并从 VB/C# 调用它。这不需要任何额外的工具或库。
我在一个名为XLLoop的开源项目上工作——这个框架允许您将 POJO 函数公开为 Excel 函数。
它包括:
您可以将此 java 函数服务器嵌入到 EJB 中,并将其部署为您的应用程序服务器的一部分。
回到 VB6/COM/DCOM 时代,我们使用套件J-Integra来完成这项任务。不过,我没有使用 .NET 版本的经验。
我强烈推荐IKVM。它是 .NET 汇编编译器(即 JAR --> DLL)的 java 字节码,我用它在 Excel 自动化服务器中创建实时 JMX 链接和侦听器。创建 EJB 客户端存根和支持库的 .NET 程序集对您来说应该不难。
//尼古拉斯
你可以试试Obba(我在这个项目上工作):
Obba 是用于电子表格应用程序的 Java 对象处理程序。
它在电子表格和 Java 类之间提供了一座桥梁,因此电子表格可以用作 Java 库的图形用户界面。从电子表格访问 Java 库不需要胶水代码(不需要 VBA,不需要特殊的 Java 代码)。对象由其原始构造函数实例化。使用“按名称”反射调用构造函数和方法。不需要特定于电子表格的工厂方法。Obba 提供了处理电子表格中的对象的功能。
提供插件的 Java 虚拟机可以在同一台计算机或远程计算机上运行——无需对电子表格进行任何更改,即电子表格中引用的对象可以驻留在远程 Java 虚拟机上。