我有一个 Web 应用程序 (JSP/Servlets),我需要从中调用 Web 服务以获取响应。由于 Web 服务大约需要 4 到 5 分钟来发送响应,因此应用程序被冻结,不允许用户在应用程序上执行任何操作。
要解决此问题,我需要将 Web 服务调用委托给外部独立应用程序的线程,以便 Web 服务调用变为异步。有了这个,我有几个问题:
从带有参数的 servlet 调用主程序的最佳方法是什么。我正在考虑使用 Runtime 对象的 exec() 方法来调用 .bat 文件。还有什么比这更好的吗?
我想为每个请求在主程序上启动一个线程。但是为每个请求调用主程序每次都会启动 JVM(这可能是昂贵的资源)。是否可以检查主线程是否正在运行,如果是,则在同一个主线程上启动新线程,而不是再次调用主程序。
谁能让我知道处理这个问题的最佳和非昂贵的方法是什么?
提前致谢。