Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用java创建一个可以被多个用户调用的web服务_Java_Multithreading_Web Services - Fatal编程技术网

如何用java创建一个可以被多个用户调用的web服务

如何用java创建一个可以被多个用户调用的web服务,java,multithreading,web-services,Java,Multithreading,Web Services,我有一个简单的Java和Weblogic Web服务。在这个web服务中,我有一个方法,它接收一些数据,调用另一个web服务,在DB中写入数据,然后用结果回答 如果我只用一个调用来尝试它,它工作得很好,但是,如果我尝试过SOAP UI,创建一个TestCask,在那里你可以在多个线程中调用Web服务,有时,它工作正常,但是有时候,当在另一个中间有一个调用时,结果是不正确的。p> 问题是,当我调用web服务方法I init时,我必须分析一些变量并将其保存在DB中,因此,如果调用被中断,这些变量将被

我有一个简单的Java和Weblogic Web服务。在这个web服务中,我有一个方法,它接收一些数据,调用另一个web服务,在DB中写入数据,然后用结果回答

如果我只用一个调用来尝试它,它工作得很好,但是,如果我尝试过SOAP UI,创建一个TestCask,在那里你可以在多个线程中调用Web服务,有时,它工作正常,但是有时候,当在另一个中间有一个调用时,结果是不正确的。p> 问题是,当我调用web服务方法I init时,我必须分析一些变量并将其保存在DB中,因此,如果调用被中断,这些变量将被更新,并且当第一次调用完成时,结果不正确,它们使用init值

如果我将synchronized放在web服务方法中,它会工作,但我认为这不是最好的方法,因为我希望同时允许多个用户

最好的方法是什么


非常感谢

当您开始编写特定于客户端的应用程序时,需要在数据库中保留客户端状态的数据。
因此,当每个客户端使用其cookie/会话访问您的web服务器时,您可以在客户端cookie/会话中获取加密的客户端id,并根据数据库中客户端的值计算服务器端参数。

感谢kolossus评论,我已经解决了删除全局变量和仅创建局部变量的问题,因此,每次调用都将创建一个新变量,而不会覆盖公共变量。

您使用的是哪个web服务框架?是纯吉吗?例如,纯servlet,Spring…在处理webservice调用的类中不保留任何状态,不管采用何种技术,将所有方法都保持为本地并将数据库连接池。我使用的是Java JDK 1.6,它只是Java。谢谢,但我想这不是我要找的。我没有客户端状态,我希望每个调用不会覆盖另一个调用的变量