当前位置: 代码迷 >> J2EE >> WebService线程有关问题
  详细解决方案

WebService线程有关问题

热度:362   发布时间:2016-04-17 23:49:36.0
WebService线程问题
服务端是用java写的,在接收到客户端传递的参数后,对数据进行封装,然后进行验证数据有效性。 
 比方第一人调用接口,第二人也调用接口,第二人的数据可能把第一人的数据给覆盖掉。 

------解决方案--------------------
封装出来的这个对象只要不是全局属性,就不会有覆盖的问题呀。 你把service的实现类发出来看看
------解决方案--------------------
spring都单例哦,单例你还搞成员变量,那完全是你自己的问题...
------解决方案--------------------
引用:
客户端调用的时候使用的是多线程并发,然后就会发生返回值都是同一个的问题,也就是service中发生了覆盖

返回值相同只能说明run方法返回了相同的结果,可能是方法内部处理导致。比如参数没有接收到或者engine.execute(taskId); 发生了异常可能导致结果完全是一样的。 你这里不存在覆盖的问题。

还有客户端如果处理不当也会出现结果返回结果错误的问题哦
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

客户端调用的时候使用的是多线程并发,然后就会发生返回值都是同一个的问题,也就是service中发生了覆盖

返回值相同只能说明run方法返回了相同的结果,可能是方法内部处理导致。比如参数没有接收到或者engine.execute(taskId); 发生了异常可能导致结果完全是一样的。 你这里不存在覆盖的问题。

还有客户端如果处理不当也会出现结果返回结果错误的问题哦

那我输出EngineImpl中run方法的hashcode()结果两次调用是同一个,怎么处理

this.hashcode()打印是EngineImpl实例的hush值, 你的这个对象只有一个,结果是肯定是形同的,再说这跟你的问题完全不相干
  相关解决方案