开发环境:FC3 GT4.0.1
今天刚刚学习了gt4tutorial(《The Globus Toolkit 4 Programmer’s
Tutorial》-Borja Sotomayor)第一个例子,一切顺利
但是遇到一个问题,请教各位:
根据教程中所说,web service都是stateless的,因此在WSRF中,通过一种WS-Resource的方式,将服务的状态保存在resource中,从而成为stateful
因此我修改org/globus/examples/services/core/first/impl/MathService.java中的getValueRP(79行):
public int getValueRP(GetValueRP params) throws RemoteException { return value ; }
改为:
private int i = 0 ; public int getValueRP(GetValueRP params) throws RemoteException { return ++i ; }
重新build和deploy,globus-start-container -nosec
运行client结果如下:
[shuiyu@scut7 tut-eg]$ java -cp build/stubs/classes/:$CLASSPATH org.globus.examples.clients.MathService_instance.Client http://127.0.0.1:8080/wsrf/services/examples/core/first/MathService
Current value: 1
Current value: 2
[shuiyu@scut7 tut-eg]$ java -cp build/stubs/classes/:$CLASSPATH org.globus.examples.clients.MathService_instance.Client http://127.0.0.1:8080/wsrf/services/examples/core/first/MathService
Current value: 3
Current value: 4
[shuiyu@scut7 tut-eg]$ java -cp build/stubs/classes/:$CLASSPATH org.globus.examples.clients.MathService_instance.Client http://127.0.0.1:8080/wsrf/services/examples/core/first/MathService
Current value: 5
Current value: 6
显然,尽管变量i不在resource中,但却是stateful的
因此请教各位,这个现象应该如何解释,或者是我对于wsrf以及state的理解存在错误?
谢谢大家!