2010-08-25 3 views
1

У нас есть довольно большое приложение с большим количеством объектов, проходящих между flex и java. В одном объекте, в частности, есть тонкая ошибка:Поля несовместимы при передаче объекта с Java на Flex, как его исправить?

Это простой старый объект Java, передаваемый на передний конец flex (с использованием blazeds maker/consumer messaging). POJO имеет два свойства строки, например:

myShirt.color = "brown"; 
myShirt.description = "winter shirt with 3 buttons"; 

, когда я получаю объект на веб-интерфейсе, в Flex, свойства объекта-значения меняются местами, как в:

myShirt.color = "winter shirt with 3 buttons"; 
myShirt.description = "brown"; 

Очевидно, что это какой-то тип путаницы, когда объекты сериализуются/десериализуются. Поскольку они оба являются Strings, кажется, что что-то путается при чтении/записи объектов.

Оба объекта точно отражают друг друга с помощью параметров и методов в том же порядке в файлах с одинаковыми именами.

Как исправить сериализацию, желательно без необходимости ее самостоятельной обработки?

Заранее благодарим за любые предложения.

ответ

2

Держу пари, это просто очень простая ошибка в вашем коде (это может быть труднее всего найти). Может быть что-то вроде:

public void setColor(String s) { 
    this.description = s; 
} 

Или:

System.out.println("description: "+myShirt.color); 

Если это не помогло, попробуйте изменить имя одного (или обоих) свойств, которые становятся коммутируемых, и посмотреть, что происходит ,

+0

Я сомневаюсь, что это простая ошибка, не связанная с сериализацией. Главным образом потому, что большинство наших объектов, подобных этим, заполняются из спящих запросов непосредственно перед отправкой по сети. Там мало места для опечаток. Тем не менее, я вернусь к этой проблеме в ближайшие несколько дней и буду молиться, чтобы вы были правы! В противном случае это потенциально неприятная ошибка для исправления. – gMale

+0

оказалось, что мы оба правы. На самом деле это была действительно простая ошибка ... но это не было в нашем исходном коде, который слишком структурирован, чтобы оставить место для опечатки. Проблема? Человек, который загружает базу данных, переносил имена полей в сценарий, который они недавно писали, чтобы заполнить базу данных! Это была проблема с данными: вывоз мусора, вывоз мусора. – gMale

+0

Ага ... рад слышать, что это сработало для вас. –

 Смежные вопросы

  • Нет связанных вопросов^_^