我有一个JAX-WS Web服务,它已经在生产环境中运行了大约两个半月,而且一切似乎都运行得很好。但是,在过去的几天里,我注意到来自不同客户端的Web服务请求似乎随机混合在一起。当发生这种情况时,当前正在处理的一个请求以某种方式被第二个请求中断,第二个请求在第一个请求之前完成处理,第二个请求的响应被发送给第一个和第二个请求者。 Web服务完全按照98.5%的时间运行,另外1.5%的时间似乎出现了这个问题。
发生这种情况时,没有错误写入Tomcal日志。 Web服务使用log4j,当发生这种情况时,Web服务的日志文件也没有例外。
提前感谢您提供的任何帮助。
答案 0 :(得分:1)
根据描述,这听起来像是一个线程问题
就像在servlet中,程序员必须确保代码是线程安全的,因此您必须确保Web服务中的代码是线程安全的。
就像在servlet中一样,您的Web服务实现的单个实例将用于所有(并发)请求,因此您必须确保您的代码是线程安全的。