我在服务器和客户端上创建了一个Web服务并启用了会话管理。它工作很快,直到我通过在serviceStub.java中添加第3行代码在客户端上启用REST。 会话管理停止工作。
// session management
_serviceClient.getOptions().setManageSession(true);
_serviceClient.engageModule("addressing");
// enable REST
_serviceClient.getOptions().setProperty(Constants.Configuration.ENABLE_REST,Constants.VALUE_TRUE);
如果对最后一行代码发表评论,则重新启用会话管理。
这是一个错误还是我错过了什么?
我正在使用:
答案 0 :(得分:1)
RESTful Web服务的会话管理仅在传输级别工作,而不是基于SOAP的Web服务。
因此,为了启用RESTful Web服务的会话管理,应该完成以下操作。
在客户端存根代码中使用与上面相同的代码,但应该注释或删除关于引用寻址模块的行,因为REST不支持WS寻址)
// enable session management
_serviceClient.getOptions().setManageSession(true);
// enable REST
_serviceClient.getOptions().setProperty(Constants.Configuration.ENABLE_REST,Constants.VALUE_TRUE);
在services.xml中 Web服务desciption文件 在范围参数
中添加“ transportsession ”<service name="MyService" scope="transportsession"
class="myPackage.service.MyServiceClass">
不要忘记重新部署Web服务。
就是这样!