2011-09-22 68 views
2

我有一个c库,我在各种平台上的应用程序中使用它。目前,我计划使用JNI使用相同的c库开发Web服务。我将使用一些应用程序服务器(计划在Linux PC上使用weblogic)来托管此webservice。在java servlets中使用本机代码(服务器端)

是否有任何人在java服务器上使用本机代码的经验。这种方法是否有效? 我将来会面临任何问题吗?

回答

1

一般的经验法则是保持你的逻辑在本机代码中,并避免多个jni调用(这通常在性能方面花费很多,而不仅仅是在java中实现相同的逻辑)。但一如既往,它很大程度上取决于您的设计和瓶颈(io,cpu,网络等)。 希望这有助于。

0

我在Glassfish中使用了原生的JNI API。最大的问题是如果C代码会立即崩溃整个应用程序服务器,不会发生正常的终止,堆栈跟踪或其他任何事情。

我会尽可能少地保留C端,因为Java将更容易处理。如果您遇到性能问题,请稍后优化。