Прошу прощения, если этот вопрос немного очевиден, но я новичок в BlazeDS и не могу найти ответ. Я запускаю Java на сервере BlazeDS с интерфейсом Flex. Я хотел бы иметь возможность создавать экземпляр Java-класса только один раз, а затем Flex использует сеттеры и геттеры для воспроизведения данных в классе Java (в некотором смысле, рассматривая RemoteObject, как если бы это был экземпляр класса). Насколько я читал, это похоже на то, как работает BlazeDS, но каждый раз, когда я вызываю любой метод Java из Flex, он снова вызывает конструкторы Java, перезагружая все, что вводится методами setter. Есть ли способ, чтобы сервер держал экземпляр класса Java между вызовами метода? Благодаря!BlazeDS, Flex и Java - Можно ли рассматривать RemoteObject как экземпляр класса Java?
ответ
У вас, похоже, непонимание того, как это работает.
Объекты в клиенте Flex и объекты на вашем сервере полностью независимы. В обычных условиях приложение Flash Player/A Flex работает только с удаленной службой, используя либо WebSerice, HTTPService, либо RemoteObject. RemoteObject поддерживает AMF и Flash Remoting с BlazeDS, LiveCycle Data Services, ColdFusion и тонну другого программного обеспечения на стороне сервера.
Когда вы делаете удаленные вызовы на сервер, этот запрос не отличается от стандартного вызова веб-страницы. Он существует в «изоляции» и ничего не знает о каком-либо другом вызове. В традиционной разработке HTML мы используем файлы cookie сеанса для отслеживания сеансов сервера в клиенте «без гражданства». То же самое можно сказать и о вызовах Flex. Если ваш сервер устанавливает файлы cookie на клиенте; то Flash Player будет включать эти файлы cookie в каждом запросе; сопоставление вызова службы с сеансом на стороне сервера.
Независимо от того, создан ли объект при каждом вызове, зависит от того, что делает ваш удаленный вызов.
Преимущество, которое предлагает AMF/RemoteObject, состоит в том, что он может легко переводить серверные объекты (классы Java) на объекты на стороне клиента (классы ActionSCript). Это в основном используется для передачи данных между двумя разными объектами. Обычно люди делают объекты Value/Data Transfer Objects для этого; но классы могут иметь одинаковую точную функциональность. Он не похож на тот же объект, что и в Flex и Java.
Помогло ли это?
Ahh thanks. Я ленился и надеялся, что могу просто бросить свои классы java и заставить их работать одинаково. Спасибо за урок. Очень кратко ответил на вопрос «как это работает», каким я не мог найти нигде. – Greg
Рад помочь – JeffryHouser