【问题标题】:How to use JNI correctly with Java EE (Servlets) on windows?如何在 Windows 上正确使用 JNI 和 Java EE (Servlets)?
【发布时间】:2011-03-24 00:37:52
【问题描述】:

我正在尝试从 Servlet 了解正确使用 JNI 的方法。

据我了解有几个问题:

  1. 如果原生 DLL 崩溃,它将导致整个应用服务器崩溃
  2. 如果 DLL 由一个加载的类加载,那么另一个类加载器将无法加载和使用它。

我搜索了互联网并找到了几个可能的解决方案

  • 创建支持 JMS 的独立应用程序并使用 Servlet 中的 JMS 与其通信。
  • 运行独立服务器,加载 JNI 并通过 RMI 与其通信
  • 使用 Java 连接器架构

我希望能提供有关此主题的任何信息,在这种情况下最佳做法是什么?

附:我不确定它是否重要,但是需要使用本机 DLL 的应用程序运行在 JBoss 上。

【问题讨论】:

    标签: windows dll jboss jakarta-ee java-native-interface


    【解决方案1】:

    我绝对不会在 Java EE 应用服务器中运行基于 JNI 的工具。您对使用 JMS 的建议是一个很好的建议。您可以围绕基于消息的 Bean 创建一个服务来响应外部服务发送的消息:

    http://oreilly.com/catalog/entjbeans3/chapter/ch13.html

    以下是有关消息驱动 bean 的 Oracle Java EE 文档的链接: http://download.oracle.com/javaee/5/tutorial/doc/bnbpk.html

    我建议让两个 JBoss 服务器通过 JMS 相互通信比编写 JCA 适配器更容易,而且 JMS 消息驱动的 bean 是一个更干净的接口。 JCA 似乎根本没有发展——似乎没有任何出色的实现教程(这只是我的看法)。

    【讨论】:

    • 如果你有像 Apache 的 ActiveMQ 这样的独立 MQ 服务器,则不需要 2 个 JBoss 服务器。
    • @The Elite Gentleman:假设他有一个需要 JBoss 运行的应用程序,以及他试图与之通信的另一个 JBoss 应用程序。如果这不是真的,那么你是对的,他可以只使用 JBoss MQ。无需添加第 3 方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多