CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

在Web Services中管理Sessions

作者: ,  出处:发赛特技术网, 责任编辑: 叶江, 
2006-02-13 10:06
  在Web service中通常采用两种公认技术来管理session,一种是借助HTTP和HTTP cookies,另一种是用SOAP headers。Axis能帮你实现这两种技术

  该handler是和service分开定义并引用的,虽然你可以在service内部定义它。注意这个handler是同时为了请求和响应而定义的;这就确保了这些headers能够在请求中被读取并添加到响应中去。你可以用这个管理工具来部署它:

  java  -cp [classpath to axis bits here"> /
         org.apache.axis.client.AdminClient /
         -lhttp://localhost/myservice/AxisServlet
         deploy.wsdd

  现在服务器就可以运行了,在使用该handler时服务器无需处理任何事情;而headers能够自动被添加进去,就像这样:

                        soapenv:mustUnderstand="0"
                           xsi:type="xsd:long"
                        xmlns:ns1=
                           "http://xml.apache.org/axis/
                           session">
               -1919645576528915916

  要使用这个header,Web service客户端必须能够读取它并了解其语法;而Axis客户端可以解决这个问题。

  要创建一个使用这个简单session的Axis客户端,你需要配置Axis客户端框架来使用该handler。过程同服务器端很相似,但不是部署到服务器,而是在本地创建config文件。你可以通过运行org.apache.axis.utils.Admin来实现这一点。运行以下代码:

  org.apache.axis.utils.Admin client deploy.wsdd

  这样就创建了一个client-config.wsdd文件,它同样也包含handler代码。

  "http://xml.apache.org/axis/wsdd/"
xmlns:java=   "http://xml.apache.org/axis/
   wsdd/providers/java">
           
               value="admin"/>
           
               value=
                  "org.apache.axis.attachments.
                  AttachmentsImpl"/>
                           "sendMultiRefs" value="true"/>
                           "true"/>
                           "sendXMLDeclaration" value="true"/>
           
               value="true"/>
           
                                    "java:org.apache.axis.handlers.
                  SimpleSessionHandler"/>    
           
                                       "java:org.apache.axis.handlers.
                     SimpleSessionHandler"/>  
     
               "java:org.apache.axis.handlers.
            SimpleSessionHandler"/>
               "java:RPC" style="wrapped" use="literal">           
           
                           "kevinj.UseSessions"/>
            urn:kevinj:Sessions
     
               "java:org.apache.axis.transport.
         java.JavaSender"/>
               "java:org.apache.axis.transport.
            http.HTTPSender"/>
               "java:org.apache.axis.transport.
         local.LocalSender"/>

  为了使客户端能够利用这个handler,你必须将client-config.wsdd文件添加到客户端的classpath中。然后由Axis框架代表客户端来读取并响应这些headers。同样,客户端代码无需处理任何事情便可以使用它了。

共2页。 9 1 2

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i