2015-02-24 2 views
0

im развивает книжный магазин в Mule ESB, и мне нужно, как я могу прочитать переменную сеанса в java. Мое дело - я запрашиваю у своего MYSQL цену книги. Я сохраняю этот результат в переменной сеанса. Чтобы распечатать счет, я показываю список книг с количеством и ценой. Мне нужно восстановить стоимость цены.Чтение переменной из сеанса в java на mule ESB

Любое решение? Спасибо.

ответ

0

Что вам понадобится, это реализовать компонент, реализующий интерфейс callable. Из контекста события вы можете получить сообщение, а затем get session property.

1

Для доступа к любым переменным необходимо сначала получить доступ к сообщению. Это можно сделать либо с помощью трансформатора, который расширяет 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); 
     .... 
    } 
} 

Обратите внимание, что свойства сеанса могут повлиять на память, поэтому вы должны использовать их только в случае необходимости.

+0

Окок, я понимаю, но когда я сохраняю на своем свойстве сеанса тип объекта «книга» с такими атрибутами, как (isbn, price, quantity ...), как получить доступ к этим атрибутам = –

+0

Свойство сеанса будет типа Object (Book) вместо String. Затем вы можете получить доступ к таким атрибутам, как обычно, на Java. НТН. – clare

+0

Спасибо, это работает! –

Смежные вопросы