BlazeDS, Flex и Java. Могу ли я рассматривать RemoteObject как экземпляр класса Java? - PullRequest
0 голосов
/ 26 января 2011

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

1 Ответ

2 голосов
/ 26 января 2011

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

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

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

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

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

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

...