`
dingchd
  • 浏览: 14991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

axis2的session管理

阅读更多
webservice本身提倡无状态的,为支持某些需要维持状态的应用,axis2提供了session管理。
构建一个带session管理的service,需要做一下事情:
1、客户端的stub初始化需要出传入configcontext
     ConfigurationContext configContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(base, base+File.separator+"conf"+File.separator+"axis2.xml");
     stub = new MyServiceStub(configContext);
2、客户端需要设置
     stub._getServiceClient().getOptions().setManageSession(true);
     stub是用wsdl2java工具生成的客户端调用类
3、在service发布的services.xml文件中声明session所属的范围
     <service name="foo" scope=" soapsession">
     </service>
4、服务端axis2.xml配置configcontexttimeoutinterval
     <parameter name="ConfigContextTimeoutInterval">5000</parameter>
     参数代表过期间隔
    客户端每次持有的stub(配置了context)请求后台,第一次请求时会建立session,同时记录该session的configcontext时间戳,每次该stub请求时会比对时间戳是否处于有效,若超时则标记为过期,清除,抛异常给客户端
5、服务端服务实现类实现按需要init()和destroy()方法
     init()方法是建立session创建时自动触发的
     destroy()方法是用户持过期的sessionid向后台请求时触发的,axis2不会去主动定期扫描过期session,但每次响应服务请求时去检查是否过期,当发现是过期的时候触发destroy方法,同时抛异常,该异常也会被客户端捕获


如果stub初始化时只给定endpoint,没有指定configcontext,则后台每次接受时都认为是新的session,然后每次响应请求时都将过期的session清除掉。即是说只有关联了configcontext才会真正起到预期的效果,由axis2的层次知道,当configcontext过期(timeout)时,他下面的所有context都将timeout。

每个session对应一个服务实现类的实例

默认的服务 scope为request session,即pojo模式的服务势必是request 的,每次请求后实例(服务实现类)马上被清楚

如果要使用客户端的cookies实现session,service的scope可以设置成transportsession

还有一种scope是application的,他将会随axis2的系统整个生命周期而存在

参考文章:http://www.developer.com/services/article.php/10928_3620661_2/Axis2-Session-Management.htm


分享到:
评论

相关推荐

    axis2+spring webservice

    简单例子:axis2整合spring发布webservice,以及session的管理

    WebService大讲堂之Axis2系列教程

    Axis2是目前比较流行的WebService引擎。...本课程站在初学者角度介绍了Axis2的大多数常用的功能,例如,以多种方式编写和发布WebService、JAX-RPC、JAX-WS、复杂类型传输、WebService会话管理、Axis2模块等

    axis2;WebService

    Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用SoapMonitar监视...

    axis2_WebService_开发指南

    Axis WebService 会话Session 的管理 Axis 用控制台Dos 命令发布WebService Axis 跨多个WebService 管理Session Axis 用Spring 的JavaBean 发布WebService Axis 异步调用WebService Axis 的Module 模块 Axis 使用...

    axis2新手教程

    axis2中service.xml,session管理,module扩展

    axis2教程及案例

    比较全面的讲解了axis2安装、开发、布署,以及session管理,soap模块监视等,附带案例,亲测无误!

    axis2-1.4.1及教程

    1):用POJO实现0配置的WebService 2):复合类型数据的传递 3):使用services.xml文件发布WebService 4):二进制文件传输 ...9):编写Axis2模块(Module) 10):使用soapmonitor模块监视soap请求与响应消息

    axis2 教程_个人备用文档

    1. 用POJO实现0配置的WebService 2. 复合类型数据的传递 3. 使用services.xml文件发布WebService 4.... 5. 会话(Session)管理 ... 编写Axis2模块(Module) 10. 使用soapmonitor模块监视soap请求与响应消息

    Axis2教程 包含描述目录的内容

    WebService大讲堂之Axis2系列教程 1. 用POJO实现0配置的WebService 2. 复合类型数据的传递 3. 使用services.xml文件发布WebService 4. 二进制文件传输 5. 会话(Session)管理 6. 跨服务会话(Session)管理 ...

    axis2_webservice

    Axis的简单准备 Axis的入门实例 ...Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis的Module模块 Axis使用SoapMonitar监视WebService的请求和响应信息

    webservice6 跨越session管理

    webservice6 跨越session管理

    Axis2 WebService 开发指南 技术文档 入门文档

    Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用...

    AXIS2大讲堂文档

    文档1 pojo实现0配置 文档2 符合数据类型 文档3 使用services.xml发布...文档6 跨越session管理 文档7 spring的bean发布为webservice 文档8 异步调用webservice 文档9 编写axis模块 文档10 使用moniter监视器

    axis2编写发布和例子详解

    axis2入门学习资料,通过10个步骤详细例子(测试都能运行),简单阐述了ajax通过tomcat发布方法,session管理,异步调用和同步调用,spring整合等功能,说明,配置比较详细

    WebService大讲堂之Axis2

    WebService大讲堂之Axis2(5):会话(Session)管理 .................................................................................... 20 WebService大讲堂之Axis2(6):跨服务会话(Session)管理 ...............

    编程入门_Eclipse教程

    3.1.3. WebService会话Session的管理 24 3.1.4. 用Spring创建的JavaBean发布成WebService 29 3.1.5. 异步调用WebService 32 4. Eclipse中安装 Lomboz 35 4.1. 持久化对象与OID 35 4.1.1. 对持久化对象的要求 35 ...

    在Web Services中管理Sessions

    在Web Services中管理Sessions 在Web service中通常采用两种公认技术来管理session,一种是借助HTTP和HTTP cookies,另一种是用SOAP headers。Axis能帮你实现这两种技术。

    java开源包2

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics