0

在我正在开发的 Web 应用程序中,我使用了第三方 Java 库 (JPL),它使用 JNI 连接到外部应用程序:Prolog 引擎。

对于我的问题的性质,我需要每个 http 会话有一个 Prolog 引擎。但据我所知,我使用的库只允许我使用每个 java VM 的一个 Prolog 引擎。

为了解决这个问题,我想出了尝试配置 JBoss 以在每个 http 会话中启动一个新进程(而不仅仅是一个新线程)的想法,这有点像 CGI,通常每个 http 请求启动一个进程。

通过这种方式,某些 servlet 可以使用所需的基于 JNI 的库,而不必担心其方面的同步问题,因为正如我所期望的(希望这不会错),它们每个都有一个独立的 Prolog 引擎,具有不同的状态(例如,不同的断言 Prolog 事实)。

可以以这种方式配置 JBoss(或其他 servlet 容器)吗?任何反馈或指针将不胜感激!

4

1 回答 1

0

据我所知,这是不可能的。但是查看文档http://www.swi-prolog.org/packages/jpl/java_api/high-level_interface.html#Multi-Threaded%20Queries唯一的问题似乎是每个虚拟机只能有一个打开的查询.

于 2012-04-22T17:39:23.873 回答