BlazeDS, Flex и Java. Можно ли рассматривать RemoteObject как экземпляр класса Java?

Извините, если этот вопрос немного очевиден, но я новичок в BlazeDS и не могу найти ответ. Я использую Java на сервере BlazeDS с интерфейсом Flex. Я хотел бы иметь возможность создать экземпляр моего Java-класса только один раз, а затем использовать Flex для установки и получения данных в классе Java (в некотором смысле трактуя RemoteObject, как если бы он был экземпляром класса).). Насколько я прочитал, похоже, именно так работает BlazeDS, но каждый раз, когда я вызываю любой метод Java из Flex, он снова вызывает конструкторы Java, сбрасывая все, что вводится методами setter. Есть ли способ, чтобы сервер удерживал экземпляр класса Java между вызовами методов? Спасибо!

1 ответ

Решение

Похоже, вы неправильно понимаете, как это работает.

Объекты в клиенте Flex и объекты на вашем сервере полностью независимы. В обычных условиях приложение Flash Player/A Flex взаимодействует только с удаленной службой, используя WebSerice, HTTPService или RemoteObject. RemoteObject поддерживает AMF и Flash Remoting с BlazeDS, LiveCycle Data Services, ColdFusion и множеством других серверных программ.

Когда вы делаете удаленные вызовы на сервер, этот запрос ничем не отличается от стандартного вызова веб-страницы. Он существует в "изоляции" и ничего не знает ни о каком другом вызове. В традиционной разработке HTML мы используем сеансовые куки для отслеживания сеансов сервера в клиенте без сохранения состояния. То же самое может быть верно для вызовов Flex. Если ваш сервер устанавливает куки на клиенте; тогда Flash Player будет включать эти куки в каждый запрос; сопоставление вызова службы с сеансом на стороне сервера.

Будет ли объект создан при каждом вызове, зависит от того, что делает ваш удаленный вызов.

Преимущество, предлагаемое AMF / RemoteObject, заключается в том, что он может легко преобразовывать объекты на стороне сервера (классы Java) в объекты на стороне клиента (классы ActionSCript). Это в основном используется для передачи данных между двумя различными объектами. Обычно люди делают Объекты Значения / Объекты Передачи Данных для этого; но классы могут иметь одинаковую функциональность. Это не то же самое, что один и тот же объект существует во Flex и Java.

Это помогает?

Другие вопросы по тегам