如何从J2EE服务器访问COM接口是最佳的方法?

5

现有的Java-COM桥接器,如j-Integra、com4j和Jacob等,是否适用于在J2EE容器中使用?哪一个最适合这种用途?我需要评估今天可用的Java-COM桥接器的风险,包括JVM崩溃、本地内存泄漏和未管理的线程创建(因为在使用线程池的J2EE容器中不建议这样做)。


1
我进行了一些研究,发现 j-Interop 库不使用本地代码(它是纯 Java 使用 RPC)。它似乎是在 J2EE 服务器上使用的其他 Java-COM 桥接方案更合适的解决方案。 - Renan Mozone
你可以选择将评论发布为问题的答案。如果它解决了你的问题,你甚至可以自由地接受它。 - Adam Paynter
@Adam:我发表了一条评论而不是答案,因为我还不确定j-Interop是否可以被视为“J2EE友好”。 - Renan Mozone
在我的测试中,我发现j-Interop会启动不受管理的子线程。这并不适合在由线程池管理的J2EE服务器中使用。 - Renan Mozone
2个回答

5
我使用过你提到的那些桥接器。因为你所说的:崩溃、内存泄漏和许多其他问题,我会选择非常不同的方法。
我会使用一个小型的Windows服务器,并使用COM组件,因为这是它的本地环境。在这个小型的Windows服务器中,您可以公开一些HTTP接口(WEB请求),您可以在Java EE服务器中使用这些接口来通过Windows服务器访问COM组件。这个Windows服务器可以是具有ASP.NET服务器的IIS,也可以是使用C#、C ++、C、VB.NET编写的专有协议的自定义程序。
在我看来,这是您最安全的选择。当您进入生产模式时,它将为您节省很多麻烦。

这是一个非常有趣的方法。在IIS上的Web服务可以安全地封装COM接口到J2EE服务器。 - Renan Mozone

0
使用JAVA-COM桥的原因之一是您需要一些在Unix系统中不可用的基于Windows的功能。 几年前,在Unix上没有MS WORD,EXCEL JAVA API可用。 因此,如果可能,请尝试使用本机JAVA API来实现基于Windows的功能。例如使用APACHE POI。 在具有高安全设置的计算机上设置J-Integra很棘手,需要特殊考虑。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接