Axis2 WebService之会话管理(Session) (转)
? Axis2 WebService之会话管理(Session)
分类:
2010-04-14 17:37
139人阅读
评论 (1)
收藏
举报
首先保证你已配置好Axis2。 ? 实现同一个 WebService的 Session管理需要如下三步: ? 1.?使用 MessageContext和 ServiceContext获得与设置 key-value对。 2.?为要进行 Session管理的 WebService类所对应的 <service>元素添加一个 scope属性,并将该属性值设为 transportsession 。 3.?在客户端使用 setManageSession(true)打开 Session管理功能。 ? 下面是一个在同一个 WebService类中管理 Session的例子 ? 在Eclipse中新建一个webservice工程,如命名为:SessionWebService,建立一个 WebService 类,代码如下: ? package ?service; 在 LoginService 类中有两个方法: login 和 getLoginMsg ,如果 login 方法登录成功,会将“成功登录”字符串保存在 ServiceContext 对象中。如果在 login 方法返回 true 后调用 getLoginMsg 方法,就会返回“成功登录”。
下面是 LoginService 类的配置代码( services.xml ): <!--?? 第 2 步:添加 scope 属性 ??--> ? 使用如下的命令生成客户端使用的 stub 类: %AXIS2_HOME%/bin/wsdl2java?-uri?http://localhost:8080/axis2/services/loginService?wsdl?-p?client?-s?-o?stub 在 stub/src/client 目录中生成了一个 LoginServiceStub.java 类,在该类中找到如下的构造句方法: public ?LoginServiceStub(org.apache.axis2.context.ConfigurationContext?configurationContext, 在该方法中最后添加如下的代码: //?? 第 3 步:打开客户端的 Session 管理功能 ? ? 下面的客户端代码使用 LoginServiceStub 对象访问了刚才建立的 WebService : package test; import client.LoginServiceStub; public class TestClient { ?public static void main(String[] args) ?{ ??try ??{ ???LoginServiceStub stub = new LoginServiceStub(); ???LoginServiceStub.Login login = new LoginServiceStub.Login(); ???login.setUsername("bill"); ???login.setPassword("1234"); ???if(stub.login(login).local_return) ???{ ?????? System.out.println(stub.getLoginMsg().local_return); ???} ??} ??catch (Exception e) ??{ ?????? e.printStackTrace(); ??} ?} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angular – 如何推入数组?
- angularjs – $TemplateCache或TemplateUrl for
- 【Shell】Shell脚本注意事项
- linux 下Redis 5.0主从复制(一主二从)哨兵模式
- twitter-bootstrap – 我如何从twitter bootstra
- 在TAB完成时未检测到Jedi Vim Python子类
- twitter-bootstrap – 附加LESS的Bootstrap glyp
- typescript – RXJS Observable doSomething onC
- WebService的两种方式SOAP和REST比较
- angularjs – 如何“取消选择”所选文件?