从Excel使用EJB的最佳解决scheme

我们希望从Excel中访问一些我们的EJB。 目标是给VBA提供一个可用的API。

我们的EJB大多是无状态会话Bean,它们通过POJO执行简单的CRUD操作。

可能的解决scheme

  • 公开EJB作为WebServices,并创build一个VB / C#的DLL包装它们,
  • 使用Corba从C#访问EJB,
  • 创build一个使用Java访问EJB的COM库,

指向这些解决scheme的框架或其他想法是受欢迎的。

你可以看看IIOP.NET ,它解决了这个问题。

如果你有一个相当新的ejb容器,最便宜和最简单的应该是将你的bean作为web服务公开并从VB / C#调用它。 这不需要任何额外的工具或库。

我在一个名为XLLoop的开源项目上工作 – 这个框架允许您将POJO函数作为Excel函数公开。

它包括:

  1. 一个Excel加载项(XLL),通过TCP进行通信:
  2. 一个调用java方法的Java服务器/库。

您可以将此Java函数服务器embedded到EJB中,并将其作为应用程序服务器的一部分进行部署。

回到VB6 / COM / DCOM时代,我们使用了J-Integra套件来完成这个任务。 虽然我没有.NET版本的经验。

我强烈推荐IKVM 。 这是一个到.NET程序集编译器(即JAR – > DLL)的java字节码,我用它在Excel自动化服务器中创build实时的JMX链接和侦听器。 创buildEJB客户端存根控件库和支持库的.NET程序集应该不难。

//尼古拉斯

你可以尝试Obba (我在这个项目上工作):

Obba是电子表格应用程序的Java对象处理程序。

它提供了电子表格和Java类之间的桥梁,使得电子表格可以用作Java库的graphics用户界面。 从电子表格访问您的Java库不需要胶合代码(不需要VBA,不需要特殊的Java代码)。 对象通过其原始构造函数实例化。 构造函数和方法使用“按名称”reflection来调用。 电子表格特定的工厂方法是没有必要的。 Obba提供了处理电子表格中的对象的函数。

提供加载项的Java虚拟机可以运行在同一台计算机或远程计算机上 – 不需要对电子表格进行任何更改,即电子表格中引用的对象可以驻留在远程Java虚拟机上。

Interesting Posts