Доступ к java-методу в flex-объекте - PullRequest
0 голосов
/ 16 июля 2010

Предположим, у меня есть следующий класс java

public class Square {
        private Long id;

    private double sideLength;

    public void setSideLength(double sideLength) {
        this.sideLength = sideLength;
    }

    public double getSideLength() {
        return this.sideLength;
    }

    public double getArea() {
        return sideLength * sideLength;
    }

//another methods...

}

Внутри класса actionscript, используя RemoteObject, я вызываю метод java SquareDAO.findById (Long id) и получаю объект со следующим:

object.id
object.sideLength

Но я не понимаю область.Как я могу вызвать метод getArea ()?

1 Ответ

1 голос
/ 17 июля 2010

При вызове удаленных методов (из java, c #, php и т. Д.) Вы получите обратно только сериализованные свойства, взятые из объекта, возвращенного вызванным методом.Если вы хотите вызвать метод getArea из Flex, вы должны сделать следующее:

a) Создать класс ActionScript с именем Square, имеющий метаданные удаленного класса [RemoteClass (alias = "yourjavapackage.Square")]

b) Добавьте метод getArea внутри вашего класса, делая то же самое, что и в Java.

c) Вызовите метод java и обратите внимание, что он вернет экземпляр вашего класса AS.Теперь вы можете вызывать метод getArea из AS

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

...