如何在wso2 ESB中全局设置属性

时间:2013-04-16 07:36:14

标签: properties wso2 wso2esb session-management

我试图弄清楚如何在wso2 esb中实现会话管理。所以我编写了一个类中介,它生成了我想要存储的session_ID。为了存储会话ID,我使用以下代码:

org.apache.axis2.context.ServiceContext serviceContext = org.apache.axis2.context.MessageContext
            .getCurrentMessageContext().getServiceContext();
serviceContext.setProperty("SessionIDGlobal", uuid);

但是当我在esb的代理中运行它时,它会在getCurrentMessageContext部分抛出空指针异常。我已经遵循另一种方法在哪里我将sessionID存储在属性中介中并尝试获取其值但是当我在generateSessionID之后单击postRequest操作时尝试它的操作。所有属性都被重置,我的sessionID属性给我null值。我该怎么做才能纠正这个问题?还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

你必须像这样创建servicecontext;

ConfigurationContext cfgCtx =(((Axis2MessageContext) synCtx).getAxis2MessageContext(). getConfigurationContext();

cfgCtx.getOperationContext().getServiceContext();

答案 1 :(得分:0)

您应该存储在Message上下文中,但是您已经存储在服务Context中。请参阅此内容以了解如何在不同范围设置属性。 Synapase(默认),Axis2,Transport等

请参阅此博客文章了解完整详情。 http://blog.facilelogin.com/2011/02/wso2-esb-property-mediator-different.html