Java 如何使Web服务使用多个线程?

Java 如何使Web服务使用多个线程?,java,multithreading,service,web,Java,Multithreading,Service,Web,我有一个简单的JavaWeb服务。我希望web服务是线程化的,其中对web方法的每个调用都有自己的线程进行处理。处理过程需要很长时间,我不希望它被阻塞,从而防止对web方法的其他调用发生。相反,我希望web方法只创建线程,并且线程本身在完成处理后响应/返回一个值给客户端。可能吗 编辑: 这是我现在拥有的半伪代码: @WebService(endpointInterface="Service") public class ServiceImpl { public ServiceImpl(

我有一个简单的JavaWeb服务。我希望web服务是线程化的,其中对web方法的每个调用都有自己的线程进行处理。处理过程需要很长时间,我不希望它被阻塞,从而防止对web方法的其他调用发生。相反,我希望web方法只创建线程,并且线程本身在完成处理后响应/返回一个值给客户端。可能吗

编辑:

这是我现在拥有的半伪代码:

@WebService(endpointInterface="Service")
public class ServiceImpl {

    public ServiceImpl() 
    {
        // Initialization
    }

    public String GetResult(input)
    {
        // Does long processing

        return Result;
    }
}
我想做的不是GetResult()执行长处理,而是希望它只生成执行长处理的Runnable,让GetResult()返回并准备好服务另一个请求。我还希望Runnable能够响应等待的客户端

编辑2:


我刚意识到我在问一个愚蠢的问题。我对实现WS是相当陌生的。我原以为WS一次只接受一个请求。我不知道每个请求都已自动线程化。

是的,您可以使用JMS进行异步调用。那是最好的办法


您还可以启动一个线程,自己管理它们。一般不建议这样做。对线程池的良好管理,以及跟踪哪些线程可能需要很长时间,都需要大量开销代码

这是可能的。你试过什么。你做了什么搜索。你看过什么代码?请编辑您的问题并提供更多详细信息。您有什么样的客户?服务器端?命令行/批处理?桂?摆动JavaFX?看起来你真的要求WS是异步的。。。这也是可能的。@vkraemer是的,这就是我想要的。如何使WS异步运行,使其不会被一个方法调用卡住。。。您需要确保服务的代码是线程安全的,以利用自动线程化的请求。我不寻找异步调用,因为我不在乎客户端在等待响应时是否挂起(我甚至延长了超时时间)。我更关心的是WS一次只能服务一个客户机,因为处理时间相当长(约10分钟)。