我正在Mule ESB中开发一个书店,我需要如何读取java中的会话变量。我的情况是我在MYSQL上查询这本书的价格。我将此结果保存在会话变量中。为了打印账单,我出示了书籍清单,上面有数量和价格。我需要收回价格的价值。
有什么解决方案吗?谢谢
为了访问任何变量,您需要首先访问消息。这可以通过使用扩展AbstractMessageTransformer的转换器或使用实现Callable的组件来实现。一旦你有了它,你就可以使用类似于下面的东西:
public class TestComponent implements Callable {
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
MuleMessage message = eventContext.getMessage();
String sessionProperty = message.getProperty("mySessionProperty", PropertyScope.SESSION);
....
}
}
请注意,会话属性可能会影响内存,因此只应在必要时使用它们。
您需要的是实现一个实现可调用接口的组件。您可以从事件上下文中获取消息,然后获取会话属性。