分类:
2010-04-14 17:37
139人阅读
收藏
举报
首先保证你已配置好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;
import
org.apache.axis2.context.ServiceContext;
import
org.apache.axis2.context.MessageContext;
public
class
LoginService
{
public
boolean
login(String username, String password)
{
if
("bill".equals(username) && "1234".equals(password))
{
//
第
1
步:设置
key-value
对
MessageContext mc = MessageContext.getCurrentMessageContext();
ServiceContext sc = mc.getServiceContext();
sc.setProperty("login", "
成功登录
");
return
true
;
}
else
{
return
false
;
}
}
public
String getLoginMsg()
{
//
第
1
步:获得
key-value
对中的
value
MessageContext mc = MessageContext.getCurrentMessageContext();
ServiceContext sc = mc.getServiceContext();
return
(String)sc.getProperty("login");
}
}
在
LoginService
类中有两个方法:
login
和
getLoginMsg
,如果
login
方法登录成功,会将“成功登录”字符串保存在
ServiceContext
对象中。如果在
login
方法返回
true
后调用
getLoginMsg
方法,就会返回“成功登录”。
下面是
LoginService
类的配置代码(
services.xml
):
<!--
第
2
步:添加
scope
属性
-->
<
service
name
="loginService"
scope
="transportsession">
<
description
>
登录服务
</
description
>
<
parameter
name
="ServiceClass">
service.LoginService
</
parameter
>
<
messageReceivers
>
<
messageReceiver
mep
="http://www.w3.org/2004/08/wsdl/in-out"
class
="org.apache.axis2.rpc.receivers.RPCMessageReceiver"
/>
</
messageReceivers
>
</
service
>
使用如下的命令生成客户端使用的
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,
java.lang.String targetEndpoint,
boolean
useSeparateListener)
throws
org.apache.axis2.AxisFault
{
_serviceClient.getOptions().setSoapVersionURI(
org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
}
在该方法中最后添加如下的代码:
//
第
3
步:打开客户端的
Session
管理功能
_serviceClient.getOptions().setManageSession(
true
);
下面的客户端代码使用
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();
}
}
}
分享到:
相关推荐
Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用...
Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用SoapMonitar监视...
Axis2是目前比较流行的WebService引擎。...本课程站在初学者角度介绍了Axis2的大多数常用的功能,例如,以多种方式编写和发布WebService、JAX-RPC、JAX-WS、复杂类型传输、WebService会话管理、Axis2模块等
Axis WebService 会话Session 的管理 Axis 用控制台Dos 命令发布WebService Axis 跨多个WebService 管理Session Axis 用Spring 的JavaBean 发布WebService Axis 异步调用WebService Axis 的Module 模块 Axis 使用...
AxisWebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis的Module模块 Axis使用SoapMonitar监视...
WebService大讲堂之Axis2(5):会话(Session)管理 .................................................................................... 20 WebService大讲堂之Axis2(6):跨服务会话(Session)管理 ...............
WebService大讲堂之Axis2系列教程 1. 用POJO实现0配置的WebService 2. 复合类型数据的传递 3. 使用services.xml文件发布WebService 4. 二进制文件传输 5. 会话(Session)管理 6. 跨服务会话(Session)管理 ...
5):会话(Session)管理 6):跨服务会话(Session)管理 7):将Spring的装配JavaBean发布成 8):异步调用WebService 9):编写Axis2模块(Module) 10):使用soapmonitor模块监视soap请求与响应消息
会话(Session)管理 6. 跨服务会话(Session)管理 7. 将Spring的装配JavaBean发布成WebService 8. 异步调用WebService 9. 编写Axis2模块(Module) 10. 使用soapmonitor模块监视soap请求与响应消息
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 ...
文档1 pojo实现0配置 文档2 符合数据类型 ...文档5 会话管理 文档6 跨越session管理 文档7 spring的bean发布为webservice 文档8 异步调用webservice 文档9 编写axis模块 文档10 使用moniter监视器