如何在JBoss中从EJB调用JNI代码

3

我正在尝试从一个EJB中调用本地VOIP库。

然而,在调用时遇到了问题。

System.loadLibrary(...)

JBoss关闭:它说它收到了ABRT信号并关闭。

我知道JCA,但我正在寻找更实用的解决方案。有没有一种(低成本)方法可以从EJB调用JNI函数?

(在SLES 11 64位上使用JBoss EAP 6 + Java 6)

------> 感谢有用的答案!我实现了一个小型的外部Java应用程序,封装了JNI内容并提供Web服务。


1
JCA是这种情况下的适当解决方案,一旦您确定要实现哪个接口和类,它就非常简单易行。 - Stéphane
1个回答

2

我已经有几年没有做EJB了,但是除非它已经改变了,否则EJB的限制之一就是您不能调用本地代码。

我的解决方法是从EJB中,我可以调用一个RMI服务器,并从那里进行JNI调用。


谢谢您的提示。我正在寻找一种“更小”的解决方案,而不需要额外的服务器。有什么想法吗? - conrad
1
你必须使用EJB吗?如果不是,唯一的建议就是将你的代码移植到另一个容器(如Tomcat)上运行。否则,你可以考虑将你的本地功能移植到纯Java上。关于在EJB中运行本地代码的限制是不可谈判的 :) - Dughall
感谢您的帮助。我实现了一个单一的应用程序,提供了一个封装jni的webservice。 - conrad

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