У меня есть 2 одинаковых java-класса (представьте геттеры и сеттеры):
class ScheduledEvent {
private String eventName;
private List<eventValues> values;
}
class StartEvent {
private String eventName;
private List<eventValues> values;
}
На гибкой стороне у меня есть соответствующие объекты:
[RemoteClass(alias="com.project.events.ScheduledEvent")]
public class ScheduledEvent {
public var eventName:String;
public var values:ArrayCollection;
}
[RemoteClass(alias="com.project.events.StartEvent")]
public class StartEvent{
public var eventName:String;
public var values:ArrayCollection;
}
Теперь есть причина, почему есть два одинаковых класса. Когда что-то «запланировано», я должен получить объект ScheduleEvent, а когда событие запускается, я должен получить объект StartEvent. И в зависимости от предмета, который я получаю, я делаю разные вещи.
Моя проблема в том, что на бэкэнде он отправит мне объект ScheduleEvent, но как только он попадет на гибкую сторону (через BlazeDS), он станет StartEvent ....
Сначала я подумал, что это связано с тем, что эти два события имеют абсолютно одинаковые переменные, поэтому я попытался изменить ScheduledEvent, добавив фиктивную переменную (String foobar), но, похоже, это не имело значения.
Кто-нибудь знает, почему это происходит и как я могу это исправить?
Спасибо.
EDIT:
Я должен упомянуть, что я не использую вызов метода Java ... Я использую систему обмена сообщениями BlazeDS. Вот почему я не использую подход «один вызов Java для одного респондента». Итак, в message.body я должен получить ScheduledEvent, но я продолжаю получать StartEvent. Мне интересно, если это потому, что два объекта имеют одно и то же свойство, а BlazeDS не знает, как правильно их отобразить ... Я даже поставил точку останова в слое java-службы, чтобы убедиться, что соответствующий объект отправляется назад, и это ... Но к тому времени, когда BlazeDS сериализует и десериализует его на гибкую сторону, это уже StartEvent. И мне интересно, как это можно исправить. Спасибо.